正则表达式匹配PHP中某些字符之前的所有内容

时间:2011-03-16 00:51:51

标签: php regex

我需要正则表达式来匹配从开始到遇到其中一个字符的所有内容;或[或{或(如果这些字符不在那里,那么整个单词需要匹配..

我正在使用preg_match("/(.*?)(?=(;|\[|\(|{|))/", $word , $val);

第一组应该在那里,因为我需要$ val中的匹配值。这是PHP。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:2)

preg_match("/^([^[{(;]*)/", $word , $val);

答案 1 :(得分:0)

"/(.*?)[;\\[\\{\\($]/"应该做到这一点并且更容易。请注意,您必须转义在正则表达式中具有特殊含义的字符。 $匹配行/字符串的末尾(取决于参数)。

编辑: 由于只匹配一个子表达式,因此Anomie的解决方案可能会更快一点。