如果我的字符串是:aud\ios
,我如何检查其中是否存在\
?
我尝试使用preg_match('\\' , $string)
,但它不起作用。实现这一目标的正确方法是什么?
答案 0 :(得分:3)
对于简单的事情,你不需要正则表达式。像strpos()
这样的字符串函数就足够了:
if (strpos('aud\ios', '\\') !== FALSE) {
// String contains '\'
}
请注意,您需要在此处转义反斜杠。如果您只是编写\
,那么PHP将其视为转义序列并尝试转义后面的字符。为避免这种情况,您需要使用另一个反斜杠来逃避转义:\\
。
至于使用preg_*
函数匹配文字反斜杠,您需要使用\\\\
而不是\
。
来自PHP manual documentation on Escape Sequences:
单引号和双引号PHP字符串具有反斜杠的特殊含义。因此,如果必须将
\
与正则表达式\\
匹配,则必须在PHP代码中使用"\\\\"
或'\\\\'
。
所以你的代码看起来像是:
preg_match('/\\\\/', $string); // Don't use this though
其中:
/
- 开始分隔符\\\\
- 匹配单个文字\
/
- 结束分隔符有关此内容的其他信息,请参阅:
答案 1 :(得分:0)
if (strstr('aud\ios', '\\') !== false) {
//Contains "\"
}
答案 2 :(得分:0)
我经常使用此功能,您可以轻松检查string
contains
function StringContains($the_string,$contains)
{
return strpos($the_string, $contains) !== FALSE;
}
当然,你必须在调用这样的函数时逃避反斜杠
StringContains('aud\ios','\\');