Si desea excluir una determinada palabra / cadena en un patrón de búsqueda, una buena forma de hacerlo es la función de aserción de expresión regular. Es indispensable si desea hacer coincidir algo no seguido de otra cosa.
Un ejemplo simple
String str = "programcreek"; Pattern p = Pattern.compile(".*program(?=creek).*"); Matcher m = p.matcher(str); if(m.matches()){ System.out.println("Match!"); }else{ System.out.println("No"); } |
1. Mire hacia adelante
En el ejemplo anterior, si desea buscar «programcreek», pero no «programriver». Puedes usar el patrón:
.*program(?=creek).* |
partidos de programcreek
programador no coincide
? = es una anticipación positiva y?! es una anticipación negativa.
2. Mira atrás
Mirar hacia atrás es similar. Podemos usar? <= Para una mirada positiva hacia atrás y?
.*(?<=program)creek.* |
partidos de programcreek
softwarecreek no coincide