用于定位回车换行符的正则表达式后跟除 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 位数字和 | 之外的任何内容的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式 常见的简写形式

正则表达式 换行符

常用正则表达式速查表

常用正则表达式速查表

perl 之 正则表达式 (简)

正则表达式