我有一个列表如下:
WiytynXtP
54.76%
Witrn20t0t0
30.83%
Wrtinrt9t8
8.37%
Litrrtnurtrtx
3.17%
MtrtacrtS
2.60%
inrt9rtrt5/0.27%
Jul2004
字符串
现在我想用notepad++ regex把所有的百分比值移到下一行。
我使用以下正则表达式,但不适用于inrt9rtrt5/0.27%
字
Find : (\d+\.\d+%)(\R)
Replace : \1\2\2
型
我需要类似以下结果的内容:
WiytynXtP
54.76%
Witrn20t0t0
30.83%
Wrtinrt9t8
8.37%
Litrrtnurtrtx
3.17%
MtrtacrtS
2.60%
inrt9rtrt5/
0.27%
Jul2004
型
如何解决此问题?
2条答案
按热度按时间pgx2nnw81#
您可以只使用匹配项而不使用任何捕获组:
字符串
模式匹配:
\d+\.\d+%
匹配1+数字、点、1+数字和%
\R
匹配任何换行符unicode序列在替换中使用换行符和完全匹配
型
参见regex demo
如果你想在
(\R)
匹配的同一个换行符之前加上前缀,那么你可以在替换中使用捕获组,然后使用整个匹配:型
并替换为
型
Regex demo的
oalqel3c2#
这个问题需要在每个百分比之前添加一个行分隔符(
\R
)。问题中的替换字符串是\1\2\2
,它在 * 百分比之后添加了行分隔符 *。尝试使用替换
\2\1\2
。请注意,RegEx文本中的句号(
.
)应该转义,否则可能会错误地处理一些非百分比。使用(\d+\.\d+%)(\R)
。(尝试使用原始的RegEx,输入行为inrt9rtrt5/0=27%
。)