語法
小括號會被無視
因此常常用來使表達式更方便閱讀
關鍵字 :
?
因此若是要搜索
"?
" , 須要轉義 -- > \?
"換行" 也須要轉義
\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)
不以 " SocketInputStream" 開頭 , 有 "input = null;" 的行
^(?! SocketInputStream)(.*)(input = null;)
空格直接用 , 不須要數一數 , 再手動換成 \s
分行不用轉義
不以 "
SocketInputStream"
開頭 , 有 "
input = null;
"
的行
^( SocketInputStream)(.*)(input = null;)
匹配除了換行之外的字符, 1個和以上
.+
由1個或多個小寫字母組成,但不以bc結尾的字符串,就能夠這樣寫^[a-z]+(?<!bc)$
(Dog){3}
匹配字符串 DogDogDog