正则表达式匹配非空引用子串

Regular expression matching non-empty quoted substrings

我正在寻找匹配 "batz" 但不匹配 "" 的正则表达式:bla "" and "batz" foo

/"([^"]*)"/g 匹配两者,/"([^"]+)"/g 匹配 " and ".

这甚至可以用正则表达式实现吗?

您可以将此正则表达式用于捕获的组:

(?:""|[^"])*("[^"]+")

RegEx Demo

正则表达式详细信息:

  • (?:: 启动一个非捕获组
    • "":匹配""
    • |: 或
    • [^"]:匹配任何不是"
    • 的字符
  • )*:关闭非捕获组。 * 让该组匹配 0 次或多次出现
  • ("[^"]+"):匹配一个非空的双引号字符串并捕获到组#1