【问题标题】:How do I use regex to ignore strings that have a certain string preceding them?如何使用正则表达式忽略前面有特定字符串的字符串?
【发布时间】:2012-07-16 04:21:35
【问题描述】:

我已开启不区分大小写功能...

我想在除watch?v=xxabcxxtumblr_asdfabcasdf 之外的任何地方匹配abc

但如果我使用(watch\?v=[0-9a-zA-Z]){0}abcwatch?v=xxabcxx 匹配,可能是因为引擎在检查abcxxx 之前失败。

【问题讨论】:

    标签: c# regex


    【解决方案1】:

    在称为负向的正则表达式中向后看(也向前看,取决于您需要查看的方向)。查看“Positive and Negative Lookahead”上的教程。

    您可能还需要检查“Regular expression negative lookahead”的问题和答案。

    (watch\?v=.*)(?<!xx)abc为例,(?<xx)abc部分可以读作abc只有在前面的字母与xx不匹配时才匹配,其中@ 987654327@ 是在应用b 之前放置条件a 的格式。此外,符号< 表示往后看,感叹号! 表示否定条件。我使用了一个通用的正则表达式,但你可以理解。

    【讨论】:

    • 我这辈子都听不懂,但感谢发帖
    • 我添加了一个小例子(基于你的问题)来解释它是如何工作的。我希望这有助于理解本教程。
    • 有效!谢谢! (?<!watch\?v=[0-9a-zA-Z]*|tumblr_[0-9a-zA-Z]*)abc
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 2018-06-12
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    相关资源
    最近更新 更多