我有这样的东西
\text
This is a sentence.
This is another sentence.
\endtext
我想删除\text 和\endtext 的所有实例中两个句子之间的换行符。为了看起来像这样
\text
This is a sentence. This is another sentence.
\endtext
但当然,事情变得复杂的是\text 之后和\endtext 之前也有换行符。这些我想保留。所以,从逻辑上讲,用英语来说,我想做的是这样的
(“\text\n”之后)(删除\n 的所有实例)(“\n\endtext”之前)
但是由于我不太擅长正则表达式,所以我不确定如何用该语言编写它。有人可以帮忙吗?
最佳答案
Notepad++ 支持 PCRE。
您可以使用此正则表达式进行搜索:
(?:\\text\R|(?<!\A)\G).*\K\R(?!\\endtext)
将其替换为空格。
正则表达式分割:
-
(?:
:启动非捕获组-
\\text
:匹配\text
-
\R
: 匹配换行符 -
|
:或 -
(?<!\A)\G
:从上一场比赛结束时开始。(?<!\A)
是为了确保我们不是起始位置
-
-
)
:结束非捕获组 -
.*
:匹配0个或多个除换行符之外的任意字符 -
\K
:重置比赛信息 -
\R
: 匹配换行符 -
(?!\\endtext)
:负向前视以确保我们没有Match
当前位置旁边的\endtext`
关于regex - Notepad++ 删除两个特定字符串之间的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75163220/