私は100000文字以上の文字列を読み込むためにJavaで作業しています。 私は、文字列を検索するキーワードのリストを持っています。文字列が存在する場合は、内部処理を行う関数を呼び出します。正規表現が正確なパターンを抽出していない
私が持っているキーワードの種類は、たとえば「facebook」ではなく、「faces」に一致するすべてのパターンを取得したいとします。私は文字列の中で顔の後ろの空白文字を受け入れることができます。文字列内にあれば、「顔」「顔」「顔」「顔」のようなマッチがあります。しかし、私は、私はキーワードがキーワードの私のリストですが、私は望ましい結果を得ていないのです正規表現
Pattern p = Pattern.compile("\\s+"+keyword+"s\\s+|\\s+");
を書かれている「duckface」または「duckface」など
を受け入れることはできません。あなたは私の説明を読むことができますし、何が問題かもしれないと私はそれを修正することができます示唆してください?
また、本当に良い正規表現のJavaページへのポインタが共有されている場合、私はそれも高く評価します。
それが機能していない私が知っている理由は、私は、次のコードを使用していているの貢献者..
編集
ありがとう:
Pattern p = Pattern.compile("\\s+"+keyword+"s\\s+|\\s+");
Matcher m = p.matcher(myInputDataSting);
if(m.find())
{
System.out.println("Its a Match: "+m.group());
}
これは、空白文字列を返します...
どのように機能しないのですか?それは何文字列ですか? –
あなたは別のオプションをカッコで括る必要がありますが、あなたの場合はオプション 's 'を作るために' +' s?\\ s + "'を実行する方が良いでしょう。また、 '+ Pattern.quote(keyword)+'あなたのキーワードを確認してください。 – Irfy
私はしばしばチュートリアル/リファレンスとして[this](http://www.regular-expressions.info/tutorial.html)サイトを使用します – Vic