简单的正则表达式否定

时间:2009-10-17 21:38:00

标签: regex regex-negation

尝试仅匹配下面示例中的第一个字符。

示例字符串:C/C++/Objective C/Objective-C/ObjectiveC/objectiveC

我错误的正则表达式:(?![O|o]bjective[ |-]?)C(?!\+\+)

卫生署。

1 个答案:

答案 0 :(得分:0)

试试这个:

(?<![Oo]bjective[ -]?)C(?!\+\+)


更正是:

  • 使用负向lookbehind而不是负向前瞻((?<! ... )位)。
  • 从字符类中移除了管道字符([ ... ]位)。

由于您当前的正则表达式与\bC,{{1}匹配,因此在Coconut的任意一侧添加一对BBC也可能是值得的。 <等等

另外值得指出的是,在字符类中,如果不是第一个或最后一个字符,CFML是特殊的。有些人甚至在这些情况下也喜欢逃避它,即-,以防后来的角色被意外添加。