0

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

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

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

多哈。

4

1 回答 1

0

试试这个:

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


更正如下:

  • 使用否定的lookbehind而不是否定的lookahead((?<!...)位)。
  • 从字符类([...]位)中删除了管道字符。

\b在s 的任一侧添加一对 s 可能也是值得的C,因为您当前的正则表达式将匹配Coconut, BBCCFML依此类推

还值得指出的是,在字符类中,-如果不是第一个或最后一个字符,它是特殊的。即使在这些情况下,有些人也喜欢转义它,即[ \-],以防后面的字符意外添加。

于 2009-10-17T21:39:51.707 回答