0

正規表現を使用して指定した特定のパターンに一致する単語を取得する必要があります。

たとえば、パターンが「ABC」の場合、入力コンテンツにある場合は単語文字列「ABC」を取得する必要があります。

コンテンツ:

これはABCのタイトルです。トピック名は ABCDE です。

私の本には BE-ABC という名前のページがあります。 ABCはタグ名です。

ABC上記の太字の言葉のようになるはずです。またはABCから一致を返す必要がありますABCDEBE-ABC

これを実現するには、単一行モードまたは複数行モードを使用する必要がありますか?

4

5 に答える 5

2

BackSlash が言及しているように、使用する必要がありますyourString.contains("ABC")

それ以外の場合、正規表現が本当に必要な場合:

.*ABC.*

.任意の文字 (改行を除く) に一致し、*0 回以上を意味します。したがって、.*0 個以上の任意の文字を意味します。

ABCはリテラル文字であり、再び.*表示されます。

この正規表現はhttp://regex101.com/r/yD3rX2でテストできます

私が述べた両方のメソッドは、文字列に「ABC」という文字が含まれているかどうかを知らせますが、「ABC」という文字は返しません。ほとんどの場合、代わりにブール値が必要になります。

于 2013-09-12T11:42:43.227 に答える
0

単語全体として ABC のみを一致させる必要がある場合は、次を使用します。

Matcher m = Pattern.compile("\\b(ABC)\\b", Pattern.MULTILINE).matcher(yourString);
while(m.find()) {
    System.out.println(m.group(1));
}
于 2013-09-12T11:47:35.133 に答える
0

このコードを関数に入れて呼び出します

if(yourString.contains(pattern)) //patern is passed as argument and is type string
return pattern;
于 2013-09-12T11:42:53.527 に答える