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

标签 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

Regex to pick commas outside of quotes不解析第二行,它是最接近的。

最佳答案

退后一步,大吃一惊!

这是您寻求的正则表达式:
(?!\B"[^"]*),(?![^"]*"\B)
这是一个演示:

regex101 demo

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


  • 替代版本
    (".*?,.*?"|.*?(?:,|$))
    这将匹配内容和逗号,并与充满标点符号的值兼容

    regex101 demo

    关于正则表达式查找逗号不在引号内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21105360/

    相关文章:

    javascript - JS 中的正则表达式 : find a string of numbers that are preceded by a character

    regex - 匹配一个数据框中列中的项目并替换为另一个数据框中的相应项目

    php - 在给定手机号码的同一位置至少匹配 5 个号码位置

    php - 如何检查字符串中是否只有一个 "@"字符?

    Java 用变量文本替换字符串

    python - 将随机字符序列转换为 JSON

    javascript - 如何为文本区域创建正则表达式?

    python - 检查 Python 列表项是否包含另一个列表中的字符串

    javascript - 使用正则表达式从字符串中以特定顺序删除特定单词

    regex - Rust程序中的正则表达式