2016-07-26 9 views
0

私はこの文章を持っています。 "私はフランス人の少年です - グルッカーマン"。私は正規表現が " - Glukker Man"を強調するように、フランス語の後のすべての文字にマッチしたい。現在、私はこれを使用しています:現在、私はやっています:単語の後にあるすべての文字をどのように一致させるか

(french[\s\S]*?) 

しかし、それは "フランス語"のみを強調表示しています。 これはregex test

どうすればよいですか?

+1

どう 'について*' – khelwood

+0

は、それはフランスのキャプチャだ@khelwood。しかし私はそれがフランス語を捉えることを望んでいません。 – Abdullq

+0

@Abdullqそれはフランス語をキャプチャしていない、それはlookbehindとしてそれを使用しています。 '。*'の前後に括弧を付けるだけで良いです。 – rgoliveira

答えて

3

frenchに一致するように正の後読みを使用し、その後、.*でそれの後にすべてのものを選択します。

(?<=french)(.*) 

は、その後、あなたの交換でそれを使用することができます。また

<center>$1</center> 

、あなただけのフランス語一致する可能性がその後に来るものだけをキャプチャします。この場合

french(.*) 

あなたが動作するように第二の例のために、あなたは独自のグループにfrenchをキャプチャして、戻ってそれを置くために持っている、または持っていると思いますので、<center></center>であなたの試合を囲むしようとしているように見えます

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

それとも

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

ありがとうございますが、この "french - Glukker Man"を選択しています。 – Abdullq

+0

@Abdullq - 申し訳ありませんが、私はあなたがキャプチャにフランス語を望んでいないとは思わなかった。私は自分の答えを更新しました。 – nickb

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

使用:あなたの交換で、それそれを強調する第2グループ

0

あなたはJavaでそれを行うことができます。あなたが望む単語で文字列を分割し、それの第2の部分を使用してください。

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

出力がある: - (?<=フランス語)。 "Glukkerマン"

関連する問題