1

私は (Java での) 正規表現の基礎を学ぼうとしており、練習するサンプル シナリオをいくつか想像しましたが、ご想像のとおり、最後の (したがって私にとって最も困難な) シナリオは機能しません。ここにあります:

<[a-zA-Z]>:[a-zA-Z]

私がしたいのは、 を認識することです<SOME TEXT>:SOME MORE TEXT。次のような入力<foo>:barでは: 、機能しません。

私は何を間違っていますか?

4

2 に答える 2

3

一致する文字は 1 つだけです。複数に一致させるには、「+」を追加する必要があります。

<[a-zA-Z]+>:[a-zA-Z]+

テキストがオプションの場合は、「0 個以上」を意味する「*」も指定できます。「+」は「1 つ以上」を意味します

于 2012-07-01T15:32:49.267 に答える
1

「SOME TEXT」も文字通りキャッチしたい場合は、空白もキャッチする必要があります。

    String teststring = "<SOME TEXT>:SOME MORE TEXT";
    String regex = "<[\\sa-zA-Z]+>:[\\sa-zA-Z]+";
    Matcher m = Pattern.compile(regex).matcher(teststring);
    while (m.find())
    {
        System.out.println(teststring.substring(m.start(), m.end()));
    }
于 2012-07-01T15:50:00.290 に答える