所以我有一些这种类型的字符串:
choose_from_library_something
choose_from_library_something2
choose_from_library_something3
...
我需要搜索choose_from_library _ *
这是我的正则表达式不起作用:
}elseif (preg_match('choose_from_library_.*',$form_name)) {
我做错了什么?
答案 0 :(得分:4)
您需要在正则表达式中添加分隔符:
preg_match('/^choose_from_library_.*/',$form_name)
编辑:在正则表达式的开头添加了一个锚^
,以避免匹配don't_choose_from_library_
等。
答案 1 :(得分:0)
你可能最好使用爆炸并在你的情况下将其计算在内。
else if ( count ( explode("_" , $form_name) ) == 4 ) {
}
要回答您的问题,您需要在模式周围添加斜杠
/pattern/
另外,星号表示没有或更多,所以即使你没有文字,你仍然会匹配它。爆炸也是如此(但你可以看到最后一个元素中是否有空字符串并将其返回为假)。