正则表达式匹配字符串
我希望有一个模式匹配字符串如下:正则表达式匹配字符串
count="2"
count = "2"
count = "2"
count='2'
count = '2'
count = '2'
count=2
count = 2
count = 2
这是不是太清楚应该怎样模式不比赛,但你可能会寻找这样的事情:
count\s*=\s*(["']?)\d+\1
该正则表达式将允许数字周围的引号(或无引号)。 \1
与之前匹配的第一个捕获组(["']?
)相匹配:"
,'
,或者什么也没有,因此它不允许混合引号。 (?:"\d+"|'\d+'|\d+)
会有类似的工作。
您可能需要字符串或数字的更好的定义,例如:
count\s*=\s*(?:"(?:[^"\n\r\\]|\\.)*"|'(?:[^'\n\r\\]|\\.)*'|\d+)
正则表达式允许使用转义字符的没有新的线路,或整数文本字符串。
如果你解释分组和回参考:)你的答案会更好:) – 2011-04-30 13:23:00
谢谢,我使用这个:'count \ s * = \ s *([“\']?)([a-我想补充一下,效率(速度):'“(?:[^”\ z0-9] +)\ 1'并且对我来说非常适合,当然在你的帮助下!) – 2011-04-30 13:26:24
+1好的答案。 [\ r \\] | \\。)*“'可以通过改进_”[展开循环](http://www.amazon.com/Mastering-Regular-Expressions-Jeffrey-Friedl/dp/ 0596528124“from:Mastering Regular Expressions(3rd Edition)”)“_ like so:'”[^“\ n \ r \\] *(?:\\。[^”\ n \ r \\] *)* “'。单引号表达式可以应用相同的增强功能。请注意,此速度增强功能仅适用于回溯NFA引擎 - 即Javascript,Ruby,PHP,Perl,Python,.NET等。 – ridgerunner 2011-04-30 15:55:33
正如我所提到的,你可以解释什么*不匹配的正则表达式,你使用什么语言 - 你肯定会得到更好的答案':)' – Kobi 2011-04-30 13:28:03
我想要得到html属性PHP,有更好的主意? :) – 2011-04-30 13:34:07
其实,是的,有更好的想法。使用[html解析器](http://stackoverflow.com/questions/292926/robust-mature-html-parser-for-php)可能比正则表达式容易得多,并获得更好的结果。 – Kobi 2011-04-30 13:36:13