2016-07-26 4 views
0

Ich habe diesen Satz "Ich bin ein Junge mit Französisch - Glukker Man". Ich möchte jeden Charakter nach Französisch abgleichen, damit der Regex "- Glukker Man" hervorhebt. Momentan benutze ich:Wie man alle Zeichen nach einem Wort anpasst

(french[\s\S]*?) 

Aber es ist nur Hervorhebung "Französisch". Dies ist die regex test

Bitte, wie mache ich das?

+1

Wie wäre es '*' – khelwood

+0

@khelwood Es französisch ist die Erfassung.. Aber ich möchte nicht, dass es Französisch erfasst. – Abdullq

+0

@Abdullq es fängt nicht Französisch, es benutzt es als Lookbehind. Fügen Sie einfach Parens um '. *' Hinzu und Sie sollten gut gehen. – rgoliveira

Antwort

3

Verwenden Sie eine positive Lookbehind french anzupassen, wählen Sie dann alles, nachdem es mit .*:

(?<=french)(.*) 

Dann können Sie es in Ihrem Ersatz verwenden:

<center>$1</center> 

Alternativ können Sie nur französisch passen und dann nur erfassen, was danach kommt.

french(.*) 

In diesem Fall ist es, wie Sie Ihr Spiel mit <center></center> zu umgeben sind versucht sieht, so dass für das zweite Beispiel, arbeiten würden Sie french in seiner eigenen Gruppe zu erfassen haben und setzen Sie ihn wieder, oder haben es in Ihrem Ersatz:

Regex: (french)(.*) 
Replacement: $1<center>$2</center> 

Oder

Regex: french(.*) 
Replacement: french<center>$1</center> 
+0

Danke, aber es ist dieses "Französisch - Glukker Man". – Abdullq

+0

@Abdullq - Sorry, ich habe nicht gesehen, dass du kein Französisch in der Aufnahme willst. Ich habe meine Antwort aktualisiert. – nickb

0
(french[\s\S](.*)) 

Einsatz 2. Gruppe, um es hervorzuheben

0

Sie können Split in Java verwenden. Teilen Sie die Zeichenfolge einfach mit dem gewünschten Wort und verwenden Sie den zweiten Teil davon.

String str = "I am a boy with French - Glukker Man"; 
String str2 = str.split("French")[1]; 
System.out.println(str2); 

Ausgang ist: - (? <= Französisch) "Glukker Man"

Verwandte Themen