C# 用较低的第一个字符替换方法名
我需要一些帮助。 要用规则替换代码中的所有方法名称:C# 用较低的第一个字符替换方法名,c#,regex,C#,Regex,我需要一些帮助。 要用规则替换代码中的所有方法名称: MethodName -> methodName (need for cpp translation). 不幸的是,我需要在我的正则表达式中转义以new开头的所有情况 我的正则表达式: `[>\\.\\s]+[A-Z]+[a-zA-Z0-9_]*\\({1}` 它符合 `>MethodName(`, `.MethodName(` ` MethodName(` 但在最后一种情况下,也可以是新类名 如何避免这种情况?是否
MethodName -> methodName (need for cpp translation).
不幸的是,我需要在我的正则表达式中转义以new
开头的所有情况
我的正则表达式:
`[>\\.\\s]+[A-Z]+[a-zA-Z0-9_]*\\({1}`
它符合
`>MethodName(`, `.MethodName(` ` MethodName(`
但在最后一种情况下,也可以是新类名
如何避免这种情况?是否需要查找前导空格?如果没有:
- 第一个字符可以通过>或李>
- 后跟大写字母
- 后跟零个或多个字母、数字或下划线
- 接(
[>\.]([A-Z][A-zA-Z0-9\])*\(
(?<!new)[>.\s]+[A-Z]+\w*\(
(?。\s]+[A-Z]+\w*\(
(?是一个负查找,它将确保方法名称前面没有关键字new
我还:
- 将
[a-zA-Z0-9\
更改为\w
,因为它是等效的
- 删除多余的量词
{1}
Resharper允许您定义命名样式。将“方法属性和事件”设置为lowerCamelCase
,并让Resharper进行清理。我同意您的更改。您还可以删除[A-Z]+\w*
中多余的+
关于量词{1}:根据caseSomeMethod().SomeMethod2()
,我认为它不是多余的。但无论如何,其他的都是好的。@ArgorAvest{1}
是隐式的,a
=a{1}
@BrianStephens是的,+
也是多余的。谢谢!