$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...