正規表示式符號的一些理解

2021-10-14 03:35:13 字數 1564 閱讀 4282

關於正規表示式符號的一些理解

*

a* 匹配有a或者沒有a 的字元 = 匹配全部字元 沒有意義

ba* 匹配至少乙個b後面有多個或零個a

cca* 匹配至少包含cc的後面有乙個或多個a

a*hello匹配所有0個或多個a後,緊跟hello的行。即hello前面可以有任意多個a。

.

s…d 匹配 s d之間任意兩個字元的單詞 一定有兩個字元

s.*d 匹配s d之間任意個字元的單詞

^

匹配行首 ^m 匹配大寫字母m開頭的

**∗ ∗匹

配行尾m

** 匹配行尾 m

∗∗匹配行尾

m 匹配大寫字母m結尾的

^$

匹配空白行

[ ]

匹配括號中的任意字元 且只能匹配乙個字元 s[ao]id 能匹配 said soid

而[0-9] 匹配0-9中任意乙個字元

[a-za-z]匹配任意乙個字母

^[a-za-z]匹配任意乙個字母開頭的

而[^a-za-z]匹配不是字母的 這裡需要注意,如果"^"在 外,則代表的是行首;如果在 內,則代表的是取反。

^[^a-za-z]匹配不是字母開頭的

\ 轉義字元 比如如果想匹配 . . 就可以了

\

表示前面的字元出現的次數 比如 [0-9] 匹配的就是三位數 0-9 任意數字出現三次

zo能匹配 zooo 如果用egrep命令就可以不用轉義花括號 比如zo即可

\

表示前面的字元最少出現幾次

\

n表示前面的字元最少出現幾次m表示最多出現幾次

如sai s和i之間最少有乙個a 最多有三個a的字串

\<\> 牟定 精準匹配括號裡的字元 單寫< 匹配左邊什麼都不管的括號裡的字元 >匹配右邊什麼都不管的括號裡的字元

擴充套件元字元

需要用egrep 或 grep -e 使用

+

匹配前面乙個字元或表示式至少1次或多次 如 go+gle 可以匹配 gogle google gooogle gooooogle 等等多個o

?

匹配前面乙個字元或表示式0次或1次 如colou?r 可以匹配 color 或 colour

|

如 was|his 可以匹配 was 或 his

()

把括號裡的內容看作乙個整體 如 (dog)+ 可以匹配 dog dogdog dogdogdog 等等

注:"+"、"?"、"|"、"()"、"{}「等擴充套件元字元egrep命令或grep -e是支援的。grep命令在不加-e選項的情況下可以按如下格式寫:」+"、"?"、"|"、"()"、"{}"

正規表示式的一些符號

字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

java 正規表示式的一些符號

x 字元 x 反斜線字元 0n 八進位制值的字元0n 0 n 7 0nn 八進位制值的字元 0nn 0 n 7 0mnn 八進位制值的字元0mnn 0mnn 0 m 3,0 n 7 xhh 十六進製制值的字元0xhh uhhhh 十六進製制值的字元0xhhhh t 製表符 u0009 n 換行符 u...

一些正規表示式

要嚴格的驗證手機號碼,必須先要清楚現在已經開放了哪些數字開頭的號碼段,目前國內號碼段分配如下 移動 134 135 136 137 138 139 150 151 157 td 158 159 187 188 聯通 130 131 132 152 155 156 185 186 電信 133 153...