2016-11-08 4 views
1

brauchen etwas Hilfe. Wanna alle Methodennamen in Code mit Regel ersetzen:Ersetzen Methodennamen mit niedrigeren ersten char

MethodName -> methodName (need for cpp translation). 

Unfortunatelly, ich brauche alle Fälle in meinem Regex zu entkommen, die mit new gestartet.

Meine regex:

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

Sie paßt zu

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

sondern auch im letzten Fall können new ClassName sein.

Wie vermeidet man diesen Fall?

+1

Resharper können Sie Ihren Benennungsstil definieren. Setzen Sie "Methods properties and events" auf "lowerCamelCase" und lassen Sie Reshaper die Säuberung durchführen. –

Antwort

2

Sie diese Regex verwenden können:

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

(?<!new) ist ein egative Lookbehind, wird sichergestellt, dass dem Methodennamen das Schlüsselwort new nicht vorangestellt ist.

ich auch:

  • geändert [a-zA-Z0-9_]-\w, da sie gleichwertig ist;
  • Entfernen Sie den Quantifizierer {1}, der redundant war.
+0

Ich stimme Ihren Änderungen zu. Du könntest auch das überflüssige '+' in '[AZ] + \ w *' –

+0

Vielen Dank, Leute, es funktioniert) Über Quantifier {1}: Ich denke, es ist nicht redundant nach Case 'SomeMethod(). SomeMethod2() '. Aber trotzdem ist alles andere gut. – ArgorAvest

+0

@ArgorAvest '{1}' ist implizit, 'a' ==' a {1} ' –

0

Müssen Sie mit führenden Platz finden? Wenn nicht:

  • Erstes Zeichen kann durch> oder.
  • durch Großbuchstaben Gefolgt
  • follwed von null oder mehr Buchstaben, Zahlen oder Unterstrichen
  • Gefolgt von (

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