Ich muss eine Regex erstellen um Slangs (dh lol, lmao, imo, etc ..) und Emoticons (dh :),: P,;), etc...).Wie man einen regulären Ausdruck (regex) für Slangs und Emoticons erstellt
Ich folgte dem Beispiel bei http://www.coderanch.com/t/497238/java/java/Regular-Expression-Detecting-Emoticons. Allerdings versagt diese Methode/Vorgehensweise für mich.
zum Beispiel, sagen wir, ich muss den Slang "od" entsprechen. Ich erstelle ein Muster wie folgt. Muster pattern = Pattern.compile (Pattern.quote ("od"));
Lassen Sie uns sagen, ich muss den Slang "od" im folgenden Testsatz übereinstimmen, "einige Methoden sind schlecht." empirisch gibt es eine Übereinstimmung mit dem Wort "Methoden" in der Zeichenfolge, die nicht das ist, was ich will.
Ich habe einige der Javadoc und einige der Tutorial in Bezug auf Java und Regex gelesen, aber ich kann immer noch nicht herausfinden.
Übrigens benutze ich Java 6 (obwohl ich die Java 5 API doc angeschaut und darauf verwiesen habe).
Wenn Regex nicht der beste Weg zu gehen ist, bin ich für andere Lösungen geöffnet. Danke im Voraus für jede Hilfe/Hinweise. Der folgende Code bringt mir 3 Treffer und basiert auf dem obigen Link.
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());
}
Der folgende Code gibt keine Übereinstimmungen zurück und basiert auf den Antworten bisher.
nach den zwei hilfreiche Antworten unten, werde ich das richtige/gewünschte Code-Snippet hier posten.
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());
}
dieser Code korrekt ist oder wie da empirisch erwünscht, es gibt mir 3 Ergebnisse (2 od und 1 lmao). Entschuldigung, ich wünschte, ich wäre stärker mit Regex mit Java (und nur Regex im Allgemeinen). danke für Ihre Hilfe.
Passen Sie die Emoticons nur an, wenn ihnen ein Leerzeichen, eine Interpunktion, ein Zeilenanfang oder ein Zeilenende gefolgt wird. – Cam
Muss ich diesen Regex durch Pattern.quote (String str) übergeben? – jake