Regex replace^(.*)\r\n意外行为
我不明白为什么正则表达式在替换时会有这样的行为。考虑下面的列表:Regex replace^(.*)\r\n意外行为,regex,notepad++,Regex,Notepad++,我不明白为什么正则表达式在替换时会有这样的行为。考虑下面的列表: ABC CBA DDD JKL 我希望替换每个条目,以便得到以下结果: ABC,CBA,DDD,JKL 我使用记事本++使用以下内容进行匹配: (.*)\r\n 并将其用于替换: ($1), 这将导致预期的结果 然而,我最初的想法是,我可以利用这场比赛: ^(.*)\r\n 但是:这会导致 ABC,CBA DDD,JKL 我只是不明白为什么它不能以这种方式工作,并导致那个奇怪的结果。我错过了什么为什么^(.*)\r\n
ABC
CBA
DDD
JKL
我希望替换每个条目,以便得到以下结果:
ABC,CBA,DDD,JKL
我使用记事本++使用以下内容进行匹配:
(.*)\r\n
并将其用于替换:
($1),
这将导致预期的结果
然而,我最初的想法是,我可以利用这场比赛:
^(.*)\r\n
但是:这会导致
ABC,CBA
DDD,JKL
我只是不明白为什么它不能以这种方式工作,并导致那个奇怪的结果。我错过了什么为什么^(.*)\r\n错误?请尝试使用以下正则表达式:
[\r\n]+$
并将其替换为
,
,只需尝试使用以下正则表达式:
[\r\n]+$
并将其替换为
,
,只需尝试使用以下正则表达式:
[\r\n]+$
并将其替换为
,
,只需尝试使用以下正则表达式:
[\r\n]+$
并将其替换为
,
如下更改您的正则表达式。因为行尾可能只有\n
或\r
加上\n
字符
(.*)[\r\n]+
将匹配的字符串替换为$1,
或\1,
如下图所示更改正则表达式。因为行尾可能只有
\n
或\r
加上\n
字符
(.*)[\r\n]+
将匹配的字符串替换为$1,
或\1,
如下图所示更改正则表达式。因为行尾可能只有
\n
或\r
加上\n
字符
(.*)[\r\n]+
将匹配的字符串替换为$1,
或\1,
如下图所示更改正则表达式。因为行尾可能只有
\n
或\r
加上\n
字符
(.*)[\r\n]+
将匹配的字符串替换为$1,
或\1,
记事本尝试匹配第一行的正则表达式。它找到一个匹配项并根据需要替换。你的新州是:
ABC,CBA
DDD
JKL
它现在查看下一行,现在是DDD
,并在那里执行replace。
现在是:
ABC,CBA
DDD,JKL
因此,替换正在移动行的事实可能会混淆编辑器的正则表达式逻辑
如果您现在再次执行相同的正则表达式替换,这将导致您想要的结果。记事本尝试匹配第一行的正则表达式。它找到一个匹配项并根据需要替换。你的新州是:
ABC,CBA
DDD
JKL
它现在查看下一行,现在是DDD
,并在那里执行replace。
现在是:
ABC,CBA
DDD,JKL
因此,替换正在移动行的事实可能会混淆编辑器的正则表达式逻辑
如果您现在再次执行相同的正则表达式替换,这将导致您想要的结果。记事本尝试匹配第一行的正则表达式。它找到一个匹配项并根据需要替换。你的新州是:
ABC,CBA
DDD
JKL
它现在查看下一行,现在是DDD
,并在那里执行replace。
现在是:
ABC,CBA
DDD,JKL
因此,替换正在移动行的事实可能会混淆编辑器的正则表达式逻辑
如果您现在再次执行相同的正则表达式替换,这将导致您想要的结果。记事本尝试匹配第一行的正则表达式。它找到一个匹配项并根据需要替换。你的新州是:
ABC,CBA
DDD
JKL
它现在查看下一行,现在是DDD
,并在那里执行replace。
现在是:
ABC,CBA
DDD,JKL
因此,替换正在移动行的事实可能会混淆编辑器的正则表达式逻辑
如果您现在再次执行相同的regex replace,这将产生您想要的结果。您不能只使用
\s+
并通过,
替换它。您根本不需要捕获
见演示
你不能只使用
\s+
然后通过,
替换它。你根本不需要捕获
见演示
你不能只使用
\s+
然后通过,
替换它。你根本不需要捕获
见演示
你不能只使用
\s+
然后通过,
替换它。你根本不需要捕获
见演示
我的回答也是一样。记事本会逐行匹配吗?在第一次替换之后,记事本++会有文本
CBA\r\nDDD\r\njkl
,以便搜索^(.*)\r\n
将跳过CBA
。听起来是一个合理的答案。我的答案是一样的。记事本会逐行匹配吗?在第一次替换之后,记事本++会有文本CBA\r\nDDD\r\njkl
以便搜索^(.*)\r\n
将跳过CBA
。听起来是一个合理的答案。我的答案是一样的。记事本会逐行匹配吗?在第一次替换之后,记事本++会有文本CBA\r\nDDD\r\njkl
以便搜索^(.*)\r\n
将跳过CBA
。听起来是一个合理的答案。我的答案是一样的。记事本会逐行匹配吗?在第一次替换之后,记事本++会有文本CBA\r\nDDD\r\njkl
以便搜索^(.*)\r\n
将跳过CBA
。听起来这是一个合理的答案。您正在使用记事本++?如果是,哪个版本?我无法重现这种行为…你在使用记事本++?如果是,哪个版本?我无法重现这种行为…你在使用记事本++?如果是,哪个版本?我无法重现这种行为…你在使用记事本++?如果是,哪个版本?我无法复制这种行为。。。