正则表达式在引号内找不到逗号

Chr*_*yes 19 regex

讨厌说出来但是这个问题的每个主题都没有帮助我.

我在C#中逐行检查

示例数据:

bob jones,123,55.6,,,"Hello , World",,0
jim neighbor,432,66.5,,,Andy "Blank,,1
john smith,555,77.4,,,Some value,,2
Run Code Online (Sandbox Code Playgroud)

正则表达式在引号之外选择逗号不会解析第二行,它是最接近的.

Vas*_*kis 39

退后一步,惊叹!


这是你寻求的正则表达式:

(?!\B"[^"]*),(?![^"]*"\B)


这是一个演示:

regex101演示


  • 它与第二行不匹配,因为"您插入的没有右引号.
  • 它不会像这样匹配值:,r"a string",10因为边缘上的字母"将创建一个单词边界,而不是一个非单词边界.

替代版本

(".*?,.*?"|.*?(?:,|$))

这将匹配内容和逗号,并与充满标点符号的值兼容

regex101演示

  • 我很惊讶! (2认同)