正则表达式 我遇到的



语法



小括号会被无视
因此常常用来使表达式更方便阅读

关键字 :
?

因此若是要搜索 "? " , 须要转义 -- >   \?

"换行" 也须要转义

\s+
匹配至少一个( 一个或多个 )空白字符 由于 +

\s 表示空白字符。包括,空格,制表符等
“ ” 只表示1个空格 , 在 idea 里
\s* 表示若干个空格(能够是0个) , 由于 *
若是就1个呢?
[ ]+ 只表示多个空格



例子  我遇到的


/\? (.+)/
以 ? 开头 , 后面匹配任意东西


/\{\{(.+?)\}\} /g
{
能够改写为
/( \{)(\{)(.+?)(\})(\}) / g

/\{\{(.+?)\}\}/g完整的意思就是:在所有范围内查找匹配先后有两组花括号的字符串.
如下是拆解 :


最前面的“/”与最后面的“/”是分隔符,表示正则表达式的开始与结束.

g  找出全部符合正则表达式的
“g”  表示在正则表达式中使用的 global(全局)的状态
也被称为全局匹配
将查找全部符合的项,而不单单是第一个
【相关的标志还有i(ignoreCase,表示忽略大小写)、m(multiline,表示容许跨行)】

\{ 左括号

而后咱们再来看中间的主体部分:\{\{(.+?)\}\}花括号{}是正则里的限定符.可是咱们这里是要找字符串里的花括号,因此前面加个“\”来表示是要找字符的花括号.“\{\{”“\}\}”就是找先后两组花括号.

“.”表示任意字符
“+”表示前面表达式一次乃至屡次.
“?”表示匹配模式是非贪婪的


例如:“{{}}”、“{{asdfasdfasdf56745}}”、“{{yuyuy#$%8787 9+_)(*)87 }}”

}

txt 正则表达式 替换掉全部换行
不是用正则 , 直接替换掉win的 /r/n
https://jingyan.baidu.com/article/922554464a2a26851648f408.html


清晰的写法 : 尽可能用上左右小括号


以 1 开头的行
^(1)
用这个正则搜索以下文本 :
1 这行被选中
21

不以 1 开头的行
^(?!1)
用这个正则搜索以下文本 :
1
21  这行被选中

不以 "    SocketInputStream" 开头 , 有 "input = null;"  的行
^(?!    SocketInputStream)(.*)(input = null;)
空格直接用 , 不须要数一数 , 再手动换成 \s
分行不用转义

不以 "     SocketInputStream"  开头 , 有 " input = null; "    的行
^(    SocketInputStream)(.*)(input = null;)

不以 "bc结尾
(?<!bc)$

匹配除了换行之外的字符, 1个和以上
.+

由1个或多个小写字母组成,但不以bc结尾的字符串,就能够这样写^[a-z]+(?<!bc)$

(Dog){3}
匹配字符串   DogDogDog









相关文章
相关标签/搜索