Solución:
El siguiente ejemplo se basa en sus comentarios. Utiliza una lista de palabras clave, que se buscarán en una cadena determinada utilizando límites de palabras. Utiliza StringUtils de Apache Commons Lang para construir la expresión regular e imprimir los grupos coincidentes.
String text = "I will come and meet you at the woods 123woods and all the woods";
List<String> tokens = new ArrayList<String>();
tokens.add("123woods");
tokens.add("woods");
String patternString = "\b(" + StringUtils.join(tokens, "|") + ")\b";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println(matcher.group(1));
}
Si está buscando más rendimiento, podría echar un vistazo a StringSearch: algoritmos de coincidencia de patrones de alto rendimiento en Java.
Use expresiones regulares + límites de palabras cuando otros respondieron.
"I will come and meet you at the 123woods".matches(".*\b123woods\b.*");
será verdad.
"I will come and meet you at the 123woods".matches(".*\bwoods\b.*");
será falso.
Espero que esto funcione para usted:
String string = "I will come and meet you at the 123woods";
String keyword = "123woods";
Boolean found = Arrays.asList(string.split(" ")).contains(keyword);
if(found){
System.out.println("Keyword matched the string");
}
http://codigounico.blogspot.com/
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)