我不熟悉正则表达式,我正在使用 Notepad++ 尝试清理我收到的一些数据。有没有办法找到字符的第二个出现位置并将其放在新行上?
例如
1|name|surname|address|1|name|surname|address
我需要找到数字“1”的第二次出现并将其放在新行上。
1|name|surname|address
1|name|surname|address
答案1
- Ctrl+H
- 找什么:
\|(?=1\|)
- 替换为:
\n
或\r\n
取决于平台 - Replace all
解释:
\| : a pipe, must be escaped because it has special meaning in regex
(?= : start lookahead, a zero length assertion to be sure we have after
1 : the digit 1
\| : a pipe
) : end lookahead
替代品:
\n : linebreak for linux files
或者
\r\n : linebreak for windows
- 检查环绕
- 检查正则表达式
- 请勿检查
. matches newline
给定示例的结果:
1|name|surname|address
1|name|surname|address
答案2
在替换对话框中使用它:
- 找什么 :
^(1[^1]*)\|1(.*)$
- 用。。。来代替 :
\1\n1\2
解释:
从行首开始搜索,1
后跟任意数量的not-1
,后跟|1
,后跟任意字符,直到行尾。
替换为与第一个括号内匹配的文本,然后是换行符,1
然后是与第二个括号内匹配的文本。
不要忘记确保在“搜索模式”中选中“正则表达式”。