正則表達式 我遇到的



語法



小括號會被無視
因此常常用來使表達式更方便閱讀

關鍵字 :
?

因此若是要搜索 "? " , 須要轉義 -- >   \?

"換行" 也須要轉義

\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









相關文章
相關標籤/搜索