【问题标题】:How do I write a regex to match a string that doesn't contain a word? [duplicate]如何编写正则表达式来匹配不包含单词的字符串? [复制]
【发布时间】:2010-06-30 09:32:02
【问题描述】:

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

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

现在我不想匹配一个固定的字符集,例如"|="

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

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

【问题讨论】:

  • @George,这怎么是完全重复的?是的,两者都通过负前瞻解决,但我需要多个匹配序列。

标签: c# regex regex-negation


【解决方案1】:

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

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

这将匹配任意数量的字符(非 "、非 \r、非 \n 和非 |=),或带引号的字符串,后跟("|=" 或行尾)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    相关资源
    最近更新 更多