2016-05-13 18 views
-1

文字列「ABC DE」、「ABC FE」、「ABC RE」があります。2文字間の文字の置き換え方法は?

どのように正規表現を使用してABCとEの間に文字を置換するには?

あなたはおそらく代わりに"ABC(.*?)E"で正規表現replaceAllを使用したい正規表現でこれをやろうと

str.replace((ABC)[^*](E), 'G'); 
+0

「ABC GE」の結果は何ですか? –

+0

文字列を "ABC GE"に設定するだけではどうですか? – Laurel

+0

( "$ 2 $ 1G"、 "(ABC)[^ *](E)")もしそうなら... 'str.replaceAll;' –

答えて

0

あなたが "ABC" と "E" との間で表示されるすべての文字を削除したい場合は、あなたが先読みしてreplaceAll()メソッドを介してこれを実現できます。

String[] strings = { "ABC DE", "ABC FE", "ABC RE" }; 
for(int s = 0; s < strings.length; s++){ 
    // Update each string, replacing these characters with a G 
    strings[s] = strings[s].replaceAll("(?<=ABC).*(?=E)","G")); 
} 

同様に、明示的に単純(?<=ABC).*(?=E)を使用して先読みからそれを削除し、「ABC」の後にスペースを望んでいなかった場合。

あなたはsee an interactive example of this hereをすることができます。

+0

が動作しない、OPはG. – Tunaki

+0

@Tunakiを希望する場合、空の文字列に置き換え同じ基本的な考え方がまだ成立している。 –

-1

を交換してください。

str = str.replaceAll("ABC(.*?)E", "G"); 

説明:

ABC matches the characters ABC literally (case sensitive) 
1st Capturing group (.*?) 
.*? matches any character (except newline) 
Quantifier: *? Between zero and unlimited times, as few times as possible, expanding as needed [lazy] 
E matches the character E literally (case sensitive) 
+0

' str = "ABC GE" 'はどうでしょうか? – Tunaki

+0

それはそれ自身に置き換えられますか? 1 @Ian – Ian

+0

おかげ.. –

関連する問題