2

を与えられて、配列で_<A_>_<B_>_<Z_>抽出したい。A, B, C

基本的_<に は開始区切り文字で_>あり、 は終了区切り文字です。

4

4 に答える 4

5

ルックアラウンド アサーションを使用して、タグのコンテンツのみを一致させることができます。

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));
}
于 2012-04-13T07:20:56.573 に答える
3

それは簡単です-最初のオープニングと最後のクロージングを切り取り、それをクローズ-オープンで分割します

string.replaceFirst( "^_<(.*)_>$", "$1" ).split( "_>_<" );
于 2012-04-13T06:38:53.480 に答える
-2

キャプチャ グループを使用してそれらを抽出します。

于 2012-04-13T06:36:24.553 に答える
-2

で割って_<2 つの要素を取得し、2 番目を_>取得して分割して 2 つの要素を取得し、1 番目_>_<を取得して分割して A、B、C を取得します。

于 2012-04-13T06:36:34.063 に答える