2016-12-02 1 views
0

Angenommen, ich habe regex1 und regex2. Ich möchte regex1 auf text1 anwenden und dann regex2 auf das Ergebnis anwenden. Gibt es einen Weg dazu, ohne die Java-Methode zweimal zu benutzen?Wie zwei Regex Rücken an Rücken

Ich weiß, ich

tun kann
text1 = text1.replaceAll(regex1,””).replaceAll(regex2,””); 

Aber ist es eine Möglichkeit, sie alle in einem Methodenaufruf zu tun? Wie

text1 = text1.replaceAll(regex1+"|"+ regex2,””);//this of course does not work 
+1

Ich antwortete als Community-Wiki, bevor Sie sehen, dass Sie bereits verkettet sind. Das ist die kanonische Antwort - was ist daran falsch? Warum versuchst du das zu vermeiden? –

+0

Ich bin nur neugierig auf die Macht der Regex. Sie scheinen Spaß zu machen. Also bin ich nur neugierig. –

Antwort

1

Keine Weise automatisch zu kombinieren zwei verkettete replaceAll(regex,"") in einem einzigen replaceAll(regex,"").

Beispiel warum nicht: "bob".replaceAll("o","").replaceAll("bb","").
Die zweite entfernt nur die zwei b 's, wenn die erste die o entfernt hat.

Sie können sie manuell zusammenführen, da Sie sehen können, wie sie interagieren könnten, z. "bob".replaceAll("o|bo*b",""), aber die Kombination von zwei beliebigen Regex ist nicht möglich.

Verwandte Themen