我有 14000 多行数据库,我想用 Notepad++ 编辑它们。所有这些行都应以 1000 开头,因此我想删除那些不是以 1000 结尾的行末尾的 CR LF。
例如这个
1000 16 04000 CRLF
sdfsdf 15 sdf de 05550 CRLF
1000 16 04000 CRLF
1000 16 04000 CRLF
5. sdkfd dksds 16 0555 CRLF
10/10/14 sdfsdf CRLF
应该之后查找和替换看起来像
1000 16 04000 sdfsdf 15 sdf de 05550 CRLF
1000 16 04000 CRLF
1000 16 04000 5. sdkfd dksds 16 0555 10 sdfsdf CRLF
我曾尝试过
- 找什么:
\r\n([^1000])
- 替换为:(
_\1
“_”表示“空格”)
但是,这似乎无法删除以数字开头的行(例如 5. 或 10/10/14)。是否可以只使用一个 RegEx 来查找并删除所有后面不是 1000 的换行符?
答案1
- Ctrl+H
- 找什么:
\R(?!1000\b|\z)
- 替换为:
#一个空格
- 检查环绕
- 检查正则表达式
- Replace all
解释:
\R # any kind of linebreak (i.e. \r, \n, \r\n)
(?! # start negative lookahead, make we haven't after
1000\b # 1000 with a word boundary
| # OR
\z # end of page
) # end lookahead
给定示例的结果:
1000 16 04000 sdfsdf 15 sdf de 05550
1000 16 04000
1000 16 04000 5. sdkfd dksds 16 0555 10/10/14 sdfsdf
屏幕截图:
答案2
使用正则表达式替换:
^1000
和imcrazypotato136476424735746
*\r\n
和space
imcrazypotato136476424735746
和\r\n1000
在一个正则表达式中:
(\r\n1000)|(\r\n)
和space$1
不要问我这个是如何工作的。