2009-12-19 76 views
4

管道符號|在正則表達式中用作「任一」語句的一種,據我所知。無論是這個,或者那個,或者那個,等等......使用正則表達式檢查管道符號

但是,我希望檢查一個正則表達式的字符串,以表示這個符號的存在。我試過逃脫它,但似乎並不奏效。

我如何做到這一點,特別是當我已經檢查了一些符號是存在,如#,&,@等...

回答

4
$ cat 1933190.php 

<?php 
    echo preg_match("/\|/", "This is not a pipe.") . "\n"; 
    echo preg_match("/\|/", "The | the | this is a |.") . "\n"; 
?> 

輸出:

$ php 1933190.php 
0 
1 
+0

感謝您的明確示例。 – KdgDev 2009-12-19 15:33:46

7

逃離該字符纔是正道。但要確保你逃避你的字符串聲明中的轉義字符,以及:

"\\|" 
'\\|' 

另一種方法是使用字符類([|]),因爲在那裏你只有]^(只在人物開始),-,轉義字符\本身和具有特殊含義的分隔符,因此需要轉義以表示爲純字符。

+0

而脫字符^僅具有特殊的意義,如果它是在一個字符類中的第一個字符,即[^ |]和[| ^]將表現不同。 – 2009-12-19 16:07:27