Php 使用正则表达式检查管道符号

Php 使用正则表达式检查管道符号,php,regex,Php,Regex,据我所知,管道符号|在正则表达式中用作一种“或”语句。要么这个,要么那个,要么那个,要么那个,等等 但是,我希望用正则表达式检查字符串是否存在此符号。我试过逃避,但似乎不起作用 我该怎么做,特别是如果我已经在检查一些符号是否存在,比如#、&、@等等。转义该字符是正确的方法。但也要确保转义字符串声明中的转义字符: "\\|" '\\|' 另一种方法是使用字符类([|]),因为其中只有字符],^(仅在开头),-,转义字符\本身和具有特殊含义的分隔符,因此如果要表示为普通字符,则需要转义。和插入符号

据我所知,管道符号
|
在正则表达式中用作一种“或”语句。要么这个,要么那个,要么那个,要么那个,等等

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


我该怎么做,特别是如果我已经在检查一些符号是否存在,比如#、&、@等等。

转义该字符是正确的方法。但也要确保转义字符串声明中的转义字符:

"\\|"
'\\|'

另一种方法是使用字符类(
[|]
),因为其中只有字符
]
^
(仅在开头),
-
,转义字符
\
本身和具有特殊含义的分隔符,因此如果要表示为普通字符,则需要转义。

和插入符号^。
$ 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