1

私は文字列を持っていますString fulltext = "I would like to create some text and i dont know what creater34r3, ";

そして私は部分文字列 String subtext = "create s";または"create som"またはを持ってい"create so"ます。

の単語全体を取得する方法はsubtext(この場合、「いくつかを作成する」または「作成する」)

Pattern.compile("\\b(" + subtext + "\\p{Alnum}+)");-動作しません=(

4

2 に答える 2

5

動作しますが、 (文字列全体に対して正規表現をテストするMatcher.find())の代わりに(正規表現の最初の出現を検出する)を使用する必要があります。Matcher.matches()

Matcher m = Pattern.compile("\\b(" + subtext + "\\p{Alnum}*)").matcher(fulltext);
System.out.println(m.find());
System.out.println(m.group(1));

プリント

true
create some

編集:Sean Landsmanが指摘したように、そうする必要があります(サブテキストは文字列の最後にある可能性があり、数量詞が使用され\\p{Alnum}*た場合は一致しないため)。+

于 2013-02-28T15:10:04.080 に答える
3

どうですか?

Pattern.compile("\\b(" + subtext + "\\p{Alnum}*)");

これはcreate some、上記の3つのサブテキストに対して返されます

そうでない場合は、期待される出力が何であるかを教えcreate sてくださいcreate somcreate so

于 2013-02-28T15:09:48.677 に答える