代码之家  ›  专栏  ›  技术社区  ›  Peet Brits

如何编写regex来匹配不包含单词的字符串?[复制品]

  •  0
  • Peet Brits  · 技术社区  · 16 年前

    可能重复:
    Regular expression to match string not containing a word?

    不匹配我将使用的一组字符,例如 [^\"\\r\\n]*

    现在我想不匹配固定字符集,例如“=”

    换句话说,我想匹配:(not)、not \r、not \n和not=)。

    编辑: 我试图修改regex来解析用分隔符分隔的数据。我得到的单分隔符解决方案 a CSV parser ,但现在我想将其扩展为包含多字符分隔符。我认为lookaheads不起作用,因为我想使用匹配的字符,而不仅仅是断言和放弃。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Peet Brits    16 年前

    我想出来了,应该是: ((?![\"\\r\\n]|[|][=]).)*

    从原始日志中的csv解析器链接修改的完整regex将是: ((?<field>((?![\"\\r\\n]|[|][=]).)*)|\"(?<field>([^\"]|\"\")*)\")([|][=]|(?<rowbreak>\\r\\n|\\n|$))

    这将匹配(not)、not \r、not \n和not=)或带引号的字符串的任何数量的字符,后跟(“=”或行尾)