假设我有文字(不是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到GO删除。使用replace(),我可以从ALTER替换为DISABLE,但我无法弄清楚如何匹配GO(在下一行),以便它删除整个块。想法?
答案 0 :(得分:17)
.
匹配除 \n
之外的每个字符。在一些正则表达式中,您可以添加s
标志以使其与它们匹配,但不能在Javascript中。
相反,你可以使用[\s\S]
字符类,它匹配所有空格和所有非空格,这就是一切。 ?
后的*
表示不会贪婪,否则会在第一个ALTER
和最后一个GO
之间匹配。
str = str.replace(/ALTER[\s\S]*?GO/g, '');