web-dev-qa-db-fra.com

Vérifier si Word contient une sous-chaîne dans Java Regex

Si je veux vérifier tous les mots contenant la sous-chaîne DEF, est-ce la bonne approche?

^.*[D][E][F].*$

Existe-t-il également une règle simple lors de la négation des expressions rationnelles, c’est-à-dire la modification de ce qui précède pour identifier les chaînes qui ne contiennent pas DEF?

EDIT: Je sais que cela ne nécessite pas de regex, mais pour mes besoins, il le fait.

9
dr85

Cela fonctionne aussi:

^.*DEF.*$

Il vérifie si toute la chaîne contient la sous-chaîne "DEF" au moins une fois. Mais pour des expressions triviales comme celle-ci:

str.contains("DEF");

fait la même chose.

24
Andreas_D

Pourquoi ne pas simplement utiliser str.contains("DEF") et !str.contains("DEF")?

10
Brian

Vous pouvez simplement utiliser DEF comme expression rationnelle. Pour identifier les chaînes qui ne le contiennent pas, renvoyez simplement les chaînes qui ne correspondent pas à l'expression ci-dessus.

0
biziclop