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