J'ai besoin de construire une regex pour faire correspondre les slangs (ie lol, lmao, imo, etc.) et les émoticônes (ie :),: P,;), etc...). J'ai suivi l'exemple de http://www.coderanch.com/t/497238/java/java/Regular-Expression-Detecting-Emoticons. Cependant, cette méthode/approche échoue pour moi. Par exemple, disons que je dois faire correspondre l'argot "od". Je crée un motif comme suit. Modèle de motif = Pattern.compile (Pattern.quote ("od")); Disons que je dois faire correspondre l'argot "od" dans la phrase de test suivante, "certaines méthodes sont mauvaises." empiriquement, il y a une correspondance sur le mot "méthodes" dans la chaîne, ce qui n'est pas ce que je veux. J'ai lu quelques unes des javadoc et une partie du tutoriel concernant java et regex, mais je n'arrive toujours pas à le comprendre. En passant, j'utilise Java 6 (bien que j'ai regardé et référencé le doc api de java 5).comment construire une expression régulière (regex) pour les argots et les émoticônes
Si regex n'est pas la meilleure solution, je suis également ouvert à d'autres solutions. merci d'avance pour toute aide/pointeurs. le code suivant m'obtient 3 correspondances et est basé sur le lien ci-dessus.
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());
}
le code suivant ne renvoie aucune correspondance et est basé sur les réponses jusqu'à présent. Après les deux réponses utiles ci-dessous, je posterai l'extrait de code correct/désiré ici.
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());
}
ce code est correct ou comme on le souhaite car empiriquement, il me donne 3 correspondances (2 od et 1 lmao). désolé, je voudrais être plus fort avec regex en utilisant java (et juste regex en général). Merci de votre aide.
Ne faites correspondre les émoticônes que si elles sont suivies et précédées d'un espace, d'une ponctuation, d'un début de ligne ou d'une fin de ligne. – Cam
dois-je passer cette regex par Pattern.quote (String str)? – jake