如果我的字符串是:aud\ios
,我该如何检查其中是否存在 \
?
我尝试使用 preg_match('\\' , $string)
但它不起作用。实现这一目标的正确方法是什么?
最佳答案
对于像这样简单的事情,您不需要正则表达式。字符串函数,如 strpos()
应该足够了:
if (strpos('aud\ios', '\\') !== FALSE) {
// String contains '\'
}
请注意,您需要在此处转义反斜杠。如果您只是简单地编写 \
,那么 PHP 会将其视为转义序列并尝试转义后面的字符。为避免这种情况,您需要使用另一个反斜杠对转义符进行转义:\\
。
至于使用 preg_*
函数匹配文字反斜杠,您需要使用 \\\\
而不是单个 \
.
来自PHP manual documentation on Escape Sequences :
Single and double quoted PHP strings have special meaning of backslash. Thus if
\
has to be matched with a regular expression\\
, then"\\\\"
or'\\\\'
must be used in PHP code.
所以你的代码应该是这样的:
preg_match('/\\\\/', $string); // Don't use this though
哪里:
/
- 起始分隔符\\\\
- 匹配单个文字\
/
- 结束分隔符
有关此的更多信息,请参阅:
关于php - 查找字符串中反斜杠的出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22691720/