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