用较低的第一个字符

时间:2016-11-08 15:02:54

标签: c# regex

需要一些帮助。 想用规则替换代码中的所有方法名称:

MethodName -> methodName (need for cpp translation).

不幸的是,我需要在所有以new开头的案例中逃避我的正则表达式。

我的正则表达式:

 `[>\\.\\s]+[A-Z]+[a-zA-Z0-9_]*\\({1}`

匹配

`>MethodName(`, `.MethodName(` ` MethodName(`

但最后一种情况也可以是new ClassName

如何避免这种情况?

2 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式:

(?<!new)[>.\s]+[A-Z]+\w*\(

(?<!new)是一个负面的背后隐藏,它将确保方法名称前面没有关键字new

我也是:

  • [a-zA-Z0-9_]更改为\w,因为它等效;
  • 删除多余的量词{1}

答案 1 :(得分:0)

你需要找到领先的空间吗?如果不是:

  • 第一个角色可以通过&gt;要么 。
  • 后跟大写字母
  • 以零或多个字母,数字或下划线标出
  • 其次是(

    [>|\.]([A-Z][a-zA-Z0-9_])*\(