带有特定单词_my_separator_的PHP正则表达式

时间:2013-01-08 17:37:53

标签: php regex

请问我想使用正则表达式来preg_match这种字符串:

$liste = 'bla0bla-__my_separator_-01blabla';

我试过了:

if(preg_match('/^[a-zA-Z0-9]_my_separator_[a-zA-Z0-9]$/', $liste))
     echo 'ok';
else echo 'not ok';

但这总是不正常

请掌握任何建议?

PS:我认为问题是 _ - ,我试过的不支持!

提前致谢。

3 个答案:

答案 0 :(得分:3)

将正则表达式模式更改为:

'/^[a-zA-Z0-9_\-]+?_my_separator_[a-zA-Z0-9_\-]+?$/'

答案 1 :(得分:3)

如果您只想确定字符串中是否存在静态子字符串,则应使用strpos()

if (strpos('_my_separator_', $liste) !== false) {
  echo 'ok';
}

答案 2 :(得分:2)

您的白名单中缺少转发器+-以及_

/^[a-zA-Z0-9\-_]+_my_separator_[a-zA-Z0-9\-_]+$/

你的orignal正则表达式会匹配以下内容:

A_my_seperator_B
0_my_seperator_C

但不是:

AB_my_seperator_C