Regexp匹配php中某些字符之前的所有内容
我需要正则表达式来匹配从开始到遇到其中一个字符的所有内容;或[或{或(如果没有这些字符,则需要匹配整个单词.) 我使用的是Regexp匹配php中某些字符之前的所有内容,php,regex,Php,Regex,我需要正则表达式来匹配从开始到遇到其中一个字符的所有内容;或[或{或(如果没有这些字符,则需要匹配整个单词.) 我使用的是preg\u match(“/(.*?)(=(;| \[| \)(|{124;)/”,$word,$val); 第一组应该在那里,因为我需要匹配的$val值。这是php。有人能帮我吗?preg\u match(“/^([^[{(;]*)/”,$word,$val);“/(.*)[;\[\\{($])/”应该可以做到这一点,而且要简单得多。请注意,您必须对正则表达式中具有特殊含
preg\u match(“/(.*?)(=(;| \[| \)(|{124;)/”,$word,$val);
第一组应该在那里,因为我需要匹配的$val值。这是php。有人能帮我吗?preg\u match(“/^([^[{(;]*)/”,$word,$val);
“/(.*)[;\[\\{($])/”
应该可以做到这一点,而且要简单得多。请注意,您必须对正则表达式中具有特殊含义的字符进行转义。$
匹配行/字符串的结尾(取决于参数)
编辑:
Think Anomie的解决方案可能会更快一点,因为它只匹配一个子表达式。你确定它在没有转义的情况下工作吗?现在不要这样认为,除非有特殊处理,直到
[
遇到]
@Mario-大多数字符在字符类中失去了特殊意义。是的,字符类中的规则是不同的。@Ben Blank:噢,谢谢。在我的屏幕上,分号后面是换行符,所以我在阅读问题时错过了它。+1是的,这就是你想要的。匹配将在$val[1]
(和$val[0]
)。您甚至可以消除捕获参数并使用$val[0]
中的值。