2016-07-26 48 views
0

我有這句話「我是一個男孩與法國人 - Glukker人」。我想匹配法語之後的每個角色,以便正則表達式突出顯示「 - Glukker Man」。目前我正在使用:目前我在做:如何匹配一個字後的所有字符

(french[\s\S]*?) 

但它突出顯示只有「法國」。 這是regex test

請問我該怎麼做?

+1

怎麼樣'' – khelwood

+0

@khelwood它捕捉法國。但我不想讓它捕捉法國。 – Abdullq

+0

@Abdullq它沒有捕獲法語,它使用它作爲向後看。只需在'。*'周圍添加parens,你應該很好走。 – rgoliveira

回答

3

用積極的回顧後,以匹配french,再經過其與.*選擇一切:

(?<=french)(.*) 

然後你就可以在你更換使用它:

<center>$1</center> 

或者,你可以只匹配法國然後只捕捉它後面的內容。

french(.*) 

在這種情況下,它看起來像你想圍繞你的比賽與<center></center>,所以第二個示例工作,你必須捕捉french在自己的組,把它放回去,或有它在你的更換:

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

或者

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

謝謝,但它是選擇這個「法國 - 格魯克曼人」。 – Abdullq

+0

@Abdullq - 對不起,我沒有看到你不想在法國捕獲。我更新了我的答案。 – nickb

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

使用第二組以突出顯示它

0

你可以使用split來做到這一點在Java中。只需將字符串與您想要的單詞分開,然後使用它的第二部分。

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

輸出爲: - (?<=法語) 「Glukker人」

相關問題