给定引号之间的字符串,例如“Hello”
以下正则表达式将打印出不带双引号的字符串匹配:
/"([^"]+)"/
我不明白它是如何捕捉角色的。我相信这应该捕获的只是最初的双引号。这个正则表达式的意思是找到一个以双引号开头和结尾的表达式,并且在开头有一个或多个双引号。它会在开头捕获一个或多个双引号。它如何最终将此处的字符串与 匹配[^"]+?
该表达式的[^"]+字面意思是匹配所有不是双引号的字符"。因此,当放置在 内部时,将捕获第一个和下一个()之后的所有字符。这是因为字符类的内部意味着否定,而不是字符串的开头,因为它意味着. 所以字面意思是除了 a 之外的任何东西。""^[][][^"]"
本身就是捕获组,()正则表达式只会捕获存在于内部的表达式()。根据您使用的编程语言,它也可能将"Hello"整个表达式匹配的整个字符串记录/"([^"]+)"/在一个单独的变量中,但目的()是捕获其内容。
表达式的完整分解:
" - 第一个字面引用( - 开始捕获[^"]+所有后续字符,但不包括")- 结束捕获组"- 最后的结束引号文字