用于定位回车换行符的正则表达式后跟除 8 位数字和 | 之外的任何内容
Posted
技术标签:
【中文标题】用于定位回车换行符的正则表达式后跟除 8 位数字和 | 之外的任何内容【英文标题】:Regex to Locate Carriage Return Line Feed Followed by anything except an 8 digit number and a | 【发布时间】:2022-01-19 20:06:38 【问题描述】:全部。
我有一些数据有一些不正确的换行符。我想搜索并替换任何没有后跟 8 位数字和管道的 CR LF。
例如:
12345678|Text|Text CRLF
123.4567|Text|Text CRLF
Text|4567890|Text
上面的这段文字应该改为:
12345678|Text|Text 123.4567|Text|Text Text|4567890|Text
我尝试了以下方法:
\r\n([^[0-9]8\|])
非常感谢任何帮助。
【问题讨论】:
你需要\r\n(?![0-9]8\|)
,假设你的意思是LF,而不是RF。
你的例子和你的描述不一样。第一个CRLF
后面是123.4567
,这不仅仅是八位数字;它有一个.
。第二个CRLF
在下一行有Text
,但您仍然显示删除CRLF
请澄清。
@dawg:来自问题:search and replace any CR LF that is not followed by an 8 digit number and a pipe.
对我来说似乎很清楚。
【参考方案1】:
Ctrl+H
查找内容:\R(?!\d8\|)
替换为:LEAVE EMPTY
检查 环绕
CHECK 正则表达式
全部替换
说明:
\R # any kind of linebreak, you can use \r\n if you want to replace ONLY \r\n
(?! # negative lookahead, make we haven't after:
\d8 # 8 digit
\| # a pipe
) # endd lookahead
屏幕截图(之前):
截图(之后):
【讨论】:
以上是关于用于定位回车换行符的正则表达式后跟除 8 位数字和 | 之外的任何内容的主要内容,如果未能解决你的问题,请参考以下文章