管道符号|
在正则表达式中用作“任一”语句的一种,据我所知。无论是这个,或者那个,或者那个,等等......使用正则表达式检查管道符号
但是,我希望检查一个正则表达式的字符串,以表示这个符号的存在。我试过逃脱它,但似乎并不奏效。
我如何做到这一点,特别是当我已经检查了一些符号是存在,如#,&,@等...
管道符号|
在正则表达式中用作“任一”语句的一种,据我所知。无论是这个,或者那个,或者那个,等等......使用正则表达式检查管道符号
但是,我希望检查一个正则表达式的字符串,以表示这个符号的存在。我试过逃脱它,但似乎并不奏效。
我如何做到这一点,特别是当我已经检查了一些符号是存在,如#,&,@等...
$ 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
逃离该字符才是正道。但要确保你逃避你的字符串声明中的转义字符,以及:
"\\|"
'\\|'
另一种方法是使用字符类([|]
),因为在那里你只有]
,^
(只在人物开始),-
,转义字符\
本身和具有特殊含义的分隔符,因此需要转义以表示为纯字符。
而脱字符^仅具有特殊的意义,如果它是在一个字符类中的第一个字符,即[^ |]和[| ^]将表现不同。 – 2009-12-19 16:07:27
感谢您的明确示例。 – KdgDev 2009-12-19 15:33:46