我想匹配每个点或逗号,但不匹配href属性。所以我有这个正则表达式:
^(?!.*?href=)(.*?)([.,])(\S+)
但是它只匹配第一次出现。我认为是因为.*?
的非贪婪性,但我无能为力。你能帮我吗?
答案 0 :(得分:-1)
如果要匹配每个匹配项,则需要使用全局(g)标志运行正则表达式: 例如
/^(?!.*?href=)(.*?)([.,])(\S+)/g
我建议您使用https://regex101.com/之类的工具来测试和调试正则表达式,这非常方便!
答案 1 :(得分:-1)
要匹配每个点或逗号并假设属性值在单引号或双引号之间,您可能要进行匹配以匹配不需要的内容并在组中捕获要保留的内容。
如果您不想匹配href中的点,则可以将其与href="
和后跟[^"]*"
或'[^']*'
进行匹配。然后,您可以使用|
([.,])
来捕获点或逗号。