Ich habe ein gutes Stück Regex Wissen, aber ich bin von diesem ratlos. Ich brauche eine Regex, die alles entspricht vor der letzte Unterstrich, aber nur wenn der Text nach dem Unterstrich ist "selbst", "Verbündeter" oder "Feind".Regex, die alles vor einem Unterstrich
Also, wenn ich Eingabezeichenfolgen wie dieses:
"hero_anti_infantry_melee_2_self"
"anti_infantry_ranged_2_ally"
"suppression_aoe_enemy"
"reinforce_btn_down"
"inset_energy"
"suppressed"
Ich möchte, dass sie die Ausgabe wie:
"hero_anti_infantry_melee_2"
"anti_infantry_ranged_2"
"suppression_aoe"
//No Match (not match because it isn't enemy, ally, or self after the underscore)
//No Match
//No Match (not underscores or enemy/ally/self
Dies ist die C# Regex-Engine, und es können alle Regex-Optionen verwendet, falls nötig . Ich werde eine akzeptierte Antwort und eine Verbesserung geben, wenn es funktioniert.
Bearbeiten: Aktualisierter Titel.
Edit 2: Feste Beispiele.
Auch realisierte ich die falschen Beispiele. Ich bin mir nicht sicher, ob das funktioniert oder nicht, da dieser Regex nicht zu funktionieren scheint. – Miguel
Ich hatte einen Tippfehler in der Regex - ') $' anstelle von '$)'. Ich habe es auch in C# -Syntax geändert - und tatsächlich überprüft, dass es diesmal funktioniert. – configurator
Funktioniert perfekt. Und ich denke, dass die Verwendung eines Lookahead am sinnvollsten ist.+1 – Miguel