Prenez cette expression régulière: /^[^abc]/
. Cela correspondra à n'importe quel caractère au début d'une chaîne, à l'exception de a, b ou c.
Si vous ajoutez un *
après - /^[^abc]*/
- l'expression régulière continuera à ajouter chaque caractère suivant le résultat, jusqu'à ce qu'il rencontre soit un a
, ou b
, ou c
.
Par exemple, avec la chaîne source "qwerty qwerty whatever abc hello"
, l'expression correspondra à "qwerty qwerty wh"
.
Mais si je voulais que la chaîne correspondante soit "qwerty qwerty whatever "
... En d'autres termes, comment puis-je faire correspondre tout (sans inclure) la séquence exacte "abc"
?
"qwerty qwerty whatever "
- sans inclure le "abc". En d'autres termes, je ne veux pas que la correspondance résultante soit "qwerty qwerty whatever abc"
.
do string.split('abc')[0]
. Certainement pas une réponse officielle à ce problème, mais je le trouve plus simple que regex.
match but not including
?