Візьміть це регулярний вираз: /^[^abc]/
. Це буде відповідати будь-якому одному символу на початку рядка, за винятком a, b або c.
Якщо ви додасте *
після нього - /^[^abc]*/
- регулярний вираз буде продовжувати додавати кожен наступний символ до результату, поки він не зустріне або an a
, або b
, або c
.
Наприклад, з вихідним рядком "qwerty qwerty whatever abc hello"
вираз буде відповідати до "qwerty qwerty wh"
.
Але що робити, якщо я хотів, щоб ця відповідна рядок була "qwerty qwerty whatever "
... Іншими словами, як я можу зіставити все до (але не включаючи) точної послідовності "abc"
?
"qwerty qwerty whatever "
- не включаючи "abc". Іншими словами, я не хочу, щоб результатом цього матчу було "qwerty qwerty whatever abc"
.
do string.split('abc')[0]
. Звичайно, це не офіційна відповідь на цю проблему, але я вважаю це більш прямим, ніж регулярний вираз.
match but not including
?