perl中的元字元

2021-06-05 03:22:53 字數 1367 閱讀 7660

$alerttext1 =~ s/\*/anycharacters/g;

my $regex = qr/\q$alertext1\e/i;#將所有的元字元都預先轉義

# \q 在non-word 字元前加上\,直到\e

# \e 結束\l,\e 和\q

$regext =~ s/anycharacters/.*/g;

if($text1 =~ $regex ...

perl中的元字元如下:

\a    只匹配字串開頭

\b    匹配單詞邊界

\b    匹配單詞邊界之外的任意字元

\d    匹配數字字元,它與[0-9]相同

\d    匹配非數字字元

\s    匹配空白字元

\s    匹配非空白字元

包圍乙個字元類,字元類包括:[0-9]  [a-z]  [a-za-z] 等類似。

()    包圍乙個字元分組或定義乙個反引用

$    匹配行尾

^    匹配行首

*    匹配前面的子表示式零次或多次。要匹配 * 字元,請使用 \*

+    匹配前面的子表示式一次或多次。要匹配 + 字元,請使用 \+

?    匹配前面的子表示式零次或一次,或指明乙個非貪婪限定符 \? 

.    匹配除換行之外的任何字元

\    引出下乙個元字元

\w    匹配任何只包含下劃線和字母數字字元的字串,它與 [a-za-z0-9_]相同

\w  匹配沒有下劃線和字母數字字元的字串

這些元字元的優先順序如下:

1.在此優先順序表的最頂端是括號:(()),在分組和引用記憶體值的時候使用。括號內部的任何部分比括號外的部分結合更緊密。

2.第二級是數量詞。這裡有星號(*), 加號(+),問號(?)以及由花括號表示的數量詞,如, , 等。它們通常和前一項元素結合。

3.第**的是錨定和序列(sequence)。錨定包括(^) 表明字串的開頭,($)表明結尾,(\b)詞界符,(\b)非詞界符。序列(乙個元素緊接著乙個元素)實際上是一種操作,雖然它沒有使用元字元。這段話的含義是乙個單詞中的字母結合更緊密,就像錨定緊貼字母一樣。

4.優先順序最低的是豎線(|),表示或。由於其優先順序最低,它通常將模式劃分成幾個部分。它在優先順序最底端是因為我們希望像|/fred|barney/裡面的字母比或(|)結合更緊密。如果或(|)的優先順序比序列的優先順序更高,那麼,上述模式的含義是匹配fre,接著是d 或者b, 然後是arney。因此,或(|)的優先順序最低,字母序列的優先順序要高些。

除了優先順序表外,還有被稱為原子(atoms)的東西,它們組成模式最基本的塊。它們是單個字元,字元類,以及後引用(backreference)。

perl中的元字元

perl中的元字元如下 表示一行的開頭 表示一行的結尾 表示乙個匹配塊的,可以對匹配上的塊通過 1,2.進行讀取,但是無法寫 0表示這個perl檔案 表示用來進行轉義的意思,比如 n表示換行符 表示perl進行匹配時的或者,邏輯rank比較低 表示乙個陣列的值 表示的含義 整個模式的含義 表示前面字...

正則中的元字元

let reg d reg.test yiyi false reg.test 20yiyi true reg.test yiyi20 falselet reg d reg.test yiyi false reg.test 20yiyi false reg.test yiyi20 true 一位數字 ...

Perl 正規表示式元字元

print it matches n if hello world world print it doesn t match n if hello world word hello world print it matches n if m print it matches n if m world...