没有分隔符的PHP正则表达式不起作用

时间:2012-10-02 13:12:14

标签: php regex

  

可能重复:
  How can I convert ereg expressions to preg in PHP?

所以我有一些这种类型的字符串:

choose_from_library_something
choose_from_library_something2
choose_from_library_something3
...

我需要搜索choose_from_library _ *

这是我的正则表达式不起作用:

}elseif (preg_match('choose_from_library_.*',$form_name)) {

我做错了什么?

2 个答案:

答案 0 :(得分:4)

您需要在正则表达式中添加分隔符:

preg_match('/^choose_from_library_.*/',$form_name)

编辑:在正则表达式的开头添加了一个锚^,以避免匹配don't_choose_from_library_等。

答案 1 :(得分:0)

你可能最好使用爆炸并在你的情况下将其计算在内。

else if ( count ( explode("_" , $form_name) ) == 4 ) {

}

要回答您的问题,您需要在模式周围添加斜杠

/pattern/

另外,星号表示没有或更多,所以即使你没有文字,你仍然会匹配它。爆炸也是如此(但你可以看到最后一个元素中是否有空字符串并将其返回为假)。

相关问题