Возьмите это регулярное выражение: /^[^abc]/
. Это будет соответствовать любому отдельному символу в начале строки, кроме a, b или c.
Если вы добавите *
после него - /^[^abc]*/
регулярное выражение будет продолжать добавлять каждый последующий символ к результату, пока не встретит или 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
?