正如我所知,管道符号 |
在正则表达式中用作一种“任一”语句。无论是那个,还是那个,或那个等等......
但是,我希望检查带有正则表达式的字符串,以确定是否存在此符号。我试过逃避它,但这似乎不起作用。
我该怎么做,特别是如果我已经检查了多个符号,比如#,&,@等......
答案 0 :(得分:7)
逃避这个角色是正确的方法。但请确保您也转义字符串声明中的转义字符:
"\\|"
'\\|'
另一种方法是使用字符类([|]
),因为在那里你只有字符]
,^
(仅在开头),-
,转义字符\
本身和具有特殊含义的分隔符,因此如果要表示为普通字符,则需要进行转义。
答案 1 :(得分:5)
$ 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