スラング(lol、lmao、imoなど)と絵文字(ie :)、:P、;)にマッチする正規表現を作成する必要があります。等...)。スラングと絵文字の正規表現(正規表現)の作成方法
私はhttp://www.coderanch.com/t/497238/java/java/Regular-Expression-Detecting-Emoticonsの例に従っています。しかし、この方法/アプローチは私のために失敗しています。
たとえば、私はスラング "od"と一致する必要があるとしましょう。私は次のようにパターンを作成します。 パターンパターン= Pattern.compile(Pattern.quote( "od"));
次のテスト文でスラング "od"に一致する必要があるとしましょう。 "いくつかの方法は悪いです"経験的には、ストリング内の単語「メソッド」に1つのマッチがあります。これは私が望むものではありません。
私はjavadocとjavaとregexに関するチュートリアルのいくつかを読んだことがありますが、これはまだ分かりません。
ところで、私はJava 6を使用しています(私はJava 5 APIのドキュメントを見て参照していますが)。
regexが最良の方法でない場合は、私は他のソリューションにもオープンしています。事前に任意のヘルプ/ポインタのおかげで。次のコードは私に3つのマッチを得、上のリンクに基づいています。
String regex = "od";
Pattern pattern = Pattern.compile(Pattern.quote(regex));
String str = "some methods are bad od od more text";
Matcher matcher = pattern.matcher(str);
while(matcher.find()) {
System.out.println(matcher.group());
}
次のコードでは一致が返されず、それまでの応答に基づいています。
String regex = "\bod\b";
Pattern pattern = Pattern.compile(regex);
//Pattern pattern = Pattern.compile(Pattern.quote(regex)); //this fails
String str = "some methods are bad od od more text";
Matcher matcher = pattern.matcher(str);
while(matcher.find()) {
System.out.println(matcher.group());
}
以下の2つの回答が有効な場合は、ここで正しい/希望するコードを投稿します。経験的に、それは私の3つのマッチ(2 OD及び1 LMAO)を与えるため
String regex = "(\\bod\\b)|(\\blmao\\b)";
Pattern pattern = Pattern.compile(regex);
String str = "some methods are bad od od more text lmao more text";
Matcher matcher = pattern.matcher(str);
while(matcher.find()) {
System.out.println(matcher.group());
}
このコードが正しいまたは所望の通りです。申し訳ありませんが、私は、正規表現では、Javaを使用して強く(一般的には正規表現)したいと思います。ご協力いただきありがとうございます。
顔文字が続かれ、スペース、句読点、行の先頭または行末より前にある場合のみ、顔文字を一致させます。 – Cam
この正規表現をPattern.quote(String str)に渡す必要がありますか? – jake