Tome esta expressão regular: /^[^abc]/
. Isso corresponderá a qualquer caractere único no início de uma sequência, exceto a, b ou c.
Se você adicionar um *
depois dele - /^[^abc]*/
- a expressão regular continuará adicionando cada caractere subseqüente ao resultado, até encontrar um a
, ou b
, ou c
.
Por exemplo, com a cadeia de origem "qwerty qwerty whatever abc hello"
, a expressão corresponderá a "qwerty qwerty wh"
.
Mas e se eu quisesse que a string correspondente fosse "qwerty qwerty whatever "
... Em outras palavras, como posso combinar tudo até (mas não incluindo) a sequência exata "abc"
?
"qwerty qwerty whatever "
- sem incluir o "abc". Em outras palavras, não quero que a correspondência resultante seja "qwerty qwerty whatever abc"
.
do string.split('abc')[0]
. Certamente não é uma resposta oficial para esse problema, mas acho mais direto que o regex.
match but not including
?