0

可能重复:
如何在 PHP 中将 ereg 表达式转换为 preg?

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

choose_from_library_something
choose_from_library_something2
choose_from_library_something3
...

我需要搜索 choose_from_library_*

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

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

我做错了什么?

4

2 回答 2

4

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

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

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

于 2012-10-02T13:14:10.500 回答
0

在您的情况下,您最好使用爆炸并计数。

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

}

要回答您的问题,您需要在图案周围加上斜线

/pattern/

此外,星号表示没有或更多,因此即使您没有文本,它仍然会匹配它。对于 explode 也是如此(但您可以查看最后一个元素中是否有空字符串并将其返回为 false)。

于 2012-10-02T13:19:09.997 回答