Мне нужно создать регулярное выражение для соответствия сленгам (то есть lol, lmao, imo и т. Д.) И смайликам (т. Е. :),: P,;) и т. Д.).
iпоследовал примеру на http://www.coderanch.com/t/497238/java/java/Regular-Expression-Detecting-Emoticons., однако, этот метод / подход терпит неудачу для меня.
например, скажем, мне нужно соответствовать сленгу "od".Я создаю шаблон следующим образом.Pattern pattern = Pattern.compile (Pattern.quote ("od"));
скажем, мне нужно соответствовать сленгу "od" в следующем тестовом предложении "некоторые методы плохие".эмпирически, есть одно совпадение со словом «методы» в строке, а это не то, что я хочу.
Я читал некоторые из Javadoc и некоторые учебники, касающиеся Java и регулярных выражений, но я все еще могуне понимаю этого.
Кстати, я использую Java 6 (хотя я посмотрел и ссылаюсь на API Java документ 5).
, если регулярное выражение не лучший способиди, я открыт для других решений.заранее спасибо за любую помощь / указатели.следующий код дает мне 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());
}
последва полезных ответа ниже, я опубликую правильный / желаемый фрагмент кода здесь.
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());
}
этот код правильный или по желанию, потому что опытным путем он дает мне 3 совпадения (2 od и 1 lmao).извините, я хотел бы быть сильнее с регулярным выражением с использованием Java (и просто регулярное выражение в целом).спасибо за вашу помощь.