2009-12-19 71 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