【发布时间】:2019-07-17 19:57:04
【问题描述】:
我需要一个匹配用双引号括起来的字符串的正则表达式。如果此模式用单引号括起来,则它不应匹配用双引号括起来的字符串:
"string"
" 'xyz' "
" `" "
" `" `" "
" `" `" `" "
' ' "should match" ' '
' "should not match" '
现在我有 (https://regex101.com/r/z5PayV/1)
(?:"(([^"]*`")*[^"]*|[^"]*)")
匹配所有行。但是最后一行不应该匹配。有什么解决办法吗?
【问题讨论】:
-
就这一点而言,最后两行难道不适合同样的情况:一个用双引号括起来的字符串,也用单引号括起来?为什么倒数第二个匹配,而不是最后一个匹配?
-
this pattern是什么意思?您当前的整个正则表达式? -
@dvo 最后两行不适合相同的情况。如果想到像 bash 或 powershell 这样的 shell 脚本,最后一行代表一个字符串,而最后一行的秒数代表 3 个字符串。答案表明正则表达式能够解决这个问题。
标签: c# regex double-quotes single-quotes