【问题标题】:reg ex to match ALL not enclosing quotation marks.正则表达式匹配所有不包括引号。
【发布时间】:2018-10-22 15:43:13
【问题描述】:

有这样的一行:(想要的 CSV 中的一行示例)

""",100,""a"sa",""," "","" ","a"z","a"",""z","""",""",200,"a"a",""

我想要一个匹配所有不包含字符串的引号 " 的正则表达式...(在稍后阶段删除它们并构建 100% 兼容的 CSV)

我想出了这个部分解决方案:(?<!,)"(?!,) 使用负后瞻和前瞻来匹配仅不包含 "

它几乎成功了,但每行的第一个字符和最后一个字符,",也被正则表达式匹配。

示例:https://regexr.com/41kve

我想要一个解决这个问题的正则表达式,所以第一个和最后一个字符不是匹配正则表达式的一部分

一些想法怎么做?

【问题讨论】:

  • 试试(?<!,|^)"(?!\s*(?:,|$))
  • 您的正则表达式示例中有一个尾随空格,但您的帖子中没有。你的实际数据中会有一些吗?
  • 嗨@WiktorStribiżew,这是后视/前瞻组中的替代答案......很容易:D谢谢!!

标签: regex


【解决方案1】:

你可以使用

(?<!,|^)"(?!\s*(?:,|$))

regex demo

详情

  • (?&lt;!,|^) - 当前位置左侧没有字符串或逗号的开头
  • " - 双引号
  • (?!\s*(?:,|$)) - 没有 , 或字符串结尾,紧靠当前位置右侧有 0+ 个空格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    相关资源
    最近更新 更多