#javascript #regex #replace
#javascript #регулярное выражение #заменить
Вопрос:
Допустим, у меня есть текст (не html), который я извлекаю из текстовой области. Это выглядит как:
ALTER LOGIN [user1] DISABLE
GO
~~~~~~~~~~~~~ important stuff to keep ~~~~~~~~~~~~~~~
~~~~~~~~~~~~~ important stuff to keep ~~~~~~~~~~~~~~~
~~~~~~~~~~~~~ important stuff to keep ~~~~~~~~~~~~~~~
ALTER LOGIN [user2] DISABLE
GO
~~~~~~~~~~~~~ important stuff to keep ~~~~~~~~~~~~~~~
~~~~~~~~~~~~~ important stuff to keep ~~~~~~~~~~~~~~~
~~~~~~~~~~~~~ important stuff to keep ~~~~~~~~~~~~~~~
Я пытаюсь удалить из ALTER to GO для каждого пользователя. С помощью replace () я могу заменить с ALTER на DISABLE, но я не совсем понимаю, как сопоставить весь путь (который находится в следующей строке), чтобы удалить весь фрагмент. Мысли?
Комментарии:
1. рассматривали ли вы возможность замены текста с помощью регулярных выражений?
2. Я довольно плохо разбираюсь в regx, определенно это то, над чем мне нужно поработать. Спасибо за ответ, Алекс!
Ответ №1:
.
в регулярном выражении соответствует каждому символу, кроме n
. В некоторых вариантах регулярных выражений вы можете добавить s
флаг, чтобы он соответствовал им, но не в Javascript.
Вместо этого вы можете использовать [sS]
класс character, который соответствует всем пробелам и всем, не являющимся пробелами, то есть всему. ?
После *
означает, что оно не будет жадным, иначе оно будет соответствовать первому ALTER
и последнему GO
.
str = str.replace(/ALTER[sS]*?GO/g, '');