0

正規表現を使用して変換したい文字列があります:

AA_BB_CC_DD=>EE_BB_FF_DD

のような正規表現を使用してみ(AA)(.*)(FF)ました。しかし、それはうまくいきませんでした。誰かが助けることができますか?

また、良い正規表現ガイドを教えていただければ幸いです。正規表現のサイトが多すぎます。どちらを参照すればよいかわかりません。

4

2 に答える 2

1

完全な説明が必要な場合は、こちらをご覧ください: http://www.regular-expressions.info/tutorialcnt.html

それがどのように機能するかを理解すれば、パターン APIで十分です。

あなたの例では、AA -> EE、BB -> BB、CC -> FF、DD -> DD だと思います。したがって、次のことを試すことができます。

String before = "AA_BB_CC_DD";
String after = before.replaceAll("AA_(.*)_CC_(.*)", "EE_$1_FF_$2");

そして、あなたは結果を得る。正規表現を説明します:
"AA_(.*) CC (.*)"
プログラムは AA_, と一致しようとします。は任意の文字を意味し、* はそれを繰り返すことを意味します。したがって、AA_ とCCの間の任意の文字列が一致します。()内は「覚える」グループを示します。

"EE_$1_FF_$2"
AA_ は EE_ に置き換えられます。$1 は、最初のグループ () を出力することを意味します。
FF と $2 も同様です。

于 2013-04-20T16:17:06.240 に答える