Regex para encontrar palabras completas

¿Cómo puedo encontrar si existe una palabra completa, es decir, "EU" , dentro de la Cadena "I am in the EU." , aunque no coincide con casos como "I am in Europe." ?

Básicamente, me gustaría algún tipo de expresiones regulares para la palabra, es decir, "EU" con caracteres no alfabéticos en cada lado.

.*\bEU\b.*

  public static void main(String[] args) { String regex = ".*\\bEU\\b.*"; String text = "EU is an acronym for EUROPE"; //String text = "EULA should not match"; if(text.matches(regex)) { System.out.println("It matches"); } else { System.out.println("Doesn't match"); } } 

Use un patrón con límites de palabras :

 String str = "I am in the EU."; if (str.matches(".*\\bEU\\b.*")) doSomething(); 

Echa un vistazo a los documentos de Pattern .

Podrías hacer algo como

 String str = "I am in the EU."; Matcher matcher = Pattern.compile("\\bEU\\b").matcher(str); if (matcher.find()) { System.out.println("Found word EU"); } 
  • Juego Regex en Kotlin
  • groupValues ​​solo devuelve la última aparición de patrón repetitivo
  • Regex: coincide con palabras que no son cadenas
  • Fusionando varias tags <script> en una en Kotlin