正则表达式匹配字符串

时间:2011-04-30 13:16:23

标签: regex

我希望模式匹配以下字符串:

count="2"
count = "2"
count   =    "2"
count='2'
count = '2'
count  =  '2'
count=2
count = 2
count   =   2

1 个答案:

答案 0 :(得分:4)

不太清楚模式应该匹配什么,但你可能正在寻找这样的东西:

count\s*=\s*(["']?)\d+\1

该正则表达式将允许在数字周围匹配引号(或无引号)。 \1与之前匹配的第一个捕获的组(["']?)匹配的内容相同:"'或什么都没有,因此不允许使用混合引号。 (?:"\d+"|'\d+'|\d+)也会有类似的效果。

您可能需要更好地定义字符串或数字,例如:

count\s*=\s*(?:"(?:[^"\n\r\\]|\\.)*"|'(?:[^'\n\r\\]|\\.)*'|\d+)

正则表达式允许带有转义字符的字符串没有新行或整数文字。