を与えられて、配列で_<A_>_<B_>_<Z_>
抽出したい。A, B, C
基本的_<
に は開始区切り文字で_>
あり、 は終了区切り文字です。
ルックアラウンド アサーションを使用して、タグのコンテンツのみを一致させることができます。
String text = "_<A_>_<B_>_<Z_>";
List<String> Result = new ArrayList<String>();
Pattern p = Pattern
.compile("(?<=_<)" + // Lookbehind assertion to ensure the opening tag before
".*?" + // Match a less as possible till the lookahead is true
"(?=_>)" // Lookahead assertion to ensure the closing tag ahead
);
Matcher m = p.matcher(text);
while(m.find()){
Result.add(m.group(0));
}
それは簡単です-最初のオープニングと最後のクロージングを切り取り、それをクローズ-オープンで分割します
string.replaceFirst( "^_<(.*)_>$", "$1" ).split( "_>_<" );
キャプチャ グループを使用してそれらを抽出します。
で割って_<
2 つの要素を取得し、2 番目を_>
取得して分割して 2 つの要素を取得し、1 番目_>_<
を取得して分割して A、B、C を取得します。