我希望模式匹配以下字符串:
count="2"
count = "2"
count = "2"
count='2'
count = '2'
count = '2'
count=2
count = 2
count = 2
答案 0 :(得分:4)
不太清楚模式不应该匹配什么,但你可能正在寻找这样的东西:
count\s*=\s*(["']?)\d+\1
该正则表达式将允许在数字周围匹配引号(或无引号)。 \1
与之前匹配的第一个捕获的组(["']?
)匹配的内容相同:"
,'
或什么都没有,因此不允许使用混合引号。 (?:"\d+"|'\d+'|\d+)
也会有类似的效果。
您可能需要更好地定义字符串或数字,例如:
count\s*=\s*(?:"(?:[^"\n\r\\]|\\.)*"|'(?:[^'\n\r\\]|\\.)*'|\d+)
正则表达式允许带有转义字符的字符串没有新行或整数文字。