我试图匹配所有文本行,直到文本文件中的某个特定句子,但在“尝试找出正则表达式”几个小时后到目前为止都失败了——不幸的是,只有机器逻辑可以用于正则表达式,没有人类逻辑; )
类似:
(.?)<specific sentence>
(.?)
应该代表任何东西——包括空格和换行符。
I want
to remove
all this text
no matter what
the characters are
up until
THIS SENTENCE <-- I want to keep this sentence (or replace the match with it)
我正在尝试删除许多文档中的长介绍文本,因此需要正则表达式来完成这项工作。
我根本不知道如何包含空格和换行符。我尝试添加我能想到的
[\n]+
、[\r]+
、[\n\r]+
(以及一百万个以上)的所有组合 - 没有任何效果。
并且,一如既往,只有在提出问题之后我才找到答案:
((.|\n)*)
<specific sentence>
<new line character>
你可以尝试这个正则表达式,然后什么都不替换。
^[\n\s\S]+?(?=^THIS SENTENCE)
通常
[\s\S]
足以匹配包括换行符在内的任何字符,但在 VSCode 中则不然(不知道为什么)。通过将 \n
添加到集合中应该可以使其按预期工作。
参见测试用例