使用Regex检查管道符号

时间:2009-12-19 15:29:25

标签: php regex

正如我所知,管道符号 | 在正则表达式中用作一种“任一”语句。无论是那个,还是那个,或那个等等......

但是,我希望检查带有正则表达式的字符串,以确定是否存在此符号。我试过逃避它,但这似乎不起作用。

我该怎么做,特别是如果我已经检查了多个符号,比如#,&,@等......

2 个答案:

答案 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