在字符串中查找反斜杠的出现位置

时间:2014-03-27 15:09:40

标签: php regex preg-match

如果我的字符串是:aud\ios,我如何检查其中是否存在\

我尝试使用preg_match('\\' , $string),但它不起作用。实现这一目标的正确方法是什么?

3 个答案:

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

检查出来:http://3v4l.org/LrDBd

当然,你必须在调用这样的函数时逃避反斜杠 StringContains('aud\ios','\\');