如何编写正则表达式以匹配不包含单词的字符串?

时间:2010-06-30 09:32:03

标签: c# regex regex-negation

  

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

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

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

换句话说,我想匹配:(不是“,不是\ r,不是\ n,而不是| =)。

编辑:我正在尝试修改正则表达式来解析用分隔符分隔的数据。我从a CSV parser获得了单分隔符解决方案,但现在我想将其扩展为包含多字符分隔符。我认为前瞻不会起作用,因为我想消费,而不仅仅是断言和丢弃匹配的字符。

1 个答案:

答案 0 :(得分:0)

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

从原始帖子中的CSV解析器链接修改的完整正则表达式将为:((?<field>((?![\"\\r\\n]|[|][=]).)*)|\"(?<field>([^\"]|\"\")*)\")([|][=]|(?<rowbreak>\\r\\n|\\n|$))

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