用于查找前面没有回车 return/line 提要的字符串模式实例的正则表达式
Regex to find instances of a string pattern that is not preceded by a carriage return/line feed
我在 Notepad++ 中工作
在我正在处理的文件中,有一个 [0-9][0-9]-[0-9][0-9][0-9][0-9]|
的字符串模式,每一行都应该以该字符串模式开头,紧接着是一个竖线。 (这里有一个警告:该模式最多可以在四位数字后包含三个大写字母。例如 00-1324A| 或 12-3456STR|)。
文件中存在该模式位于一行中间的实例,需要移至下一行。
示例:
00-1234REV|The quick brown fox jumped over the lazy dog|Test
11-6544|FooBar|text99-8656ST|This needs to be on the next line|some text
45-8737|Peter pipe picked a peck of pickled peppers|TEST2
正如我在示例中指出的那样,99-8656ST
需要移到下一行,结果是:
00-1234REV|The quick brown fox jumped over the lazy dog|Test
11-6544|FooBar|text
99-8656ST|This needs to be on the next line|some text
45-8737|Peter pipe picked a peck of pickled peppers|TEST2
我目前有这个正则表达式:(?<=[^\d\r\n])\d{2}-\d{4}(?!\d)
但它匹配行中间的部分社会保障号码:
123-45-6789
我的正则表达式将在 45-6789
。
由于纯数字边界在这里不起作用,您可以在左侧添加一个数字 + 连字符的检查。右手边界很清楚,它是零到三个大写字母后跟竖线。
也就是说,你可以使用
(?<=[^\d\r\n])(?<!\d-)\d{2}-\d{4}(?=[A-Z]{0,3}\|)
见regex demo。 详情:
(?<=[^\d\r\n])
- 紧靠左边,必须有数字以外的字符,CR,LF
(?<!\d-)
- 紧靠左边,不应有数字 + -
\d{2}-\d{4}
- 两位数,-
,四位数
(?=[A-Z]{0,3}\|)
- 紧接着是 0 到 3 个大写字母,然后是文字 |
字符。
如果左侧边界可以是单个连字符或数字,则将 (?<=[^\d\r\n])(?<!\d-)
替换为 (?<=[^\r\n\d-])
。
我在 Notepad++ 中工作
在我正在处理的文件中,有一个 [0-9][0-9]-[0-9][0-9][0-9][0-9]|
的字符串模式,每一行都应该以该字符串模式开头,紧接着是一个竖线。 (这里有一个警告:该模式最多可以在四位数字后包含三个大写字母。例如 00-1324A| 或 12-3456STR|)。
文件中存在该模式位于一行中间的实例,需要移至下一行。
示例:
00-1234REV|The quick brown fox jumped over the lazy dog|Test
11-6544|FooBar|text99-8656ST|This needs to be on the next line|some text
45-8737|Peter pipe picked a peck of pickled peppers|TEST2
正如我在示例中指出的那样,99-8656ST
需要移到下一行,结果是:
00-1234REV|The quick brown fox jumped over the lazy dog|Test
11-6544|FooBar|text
99-8656ST|This needs to be on the next line|some text
45-8737|Peter pipe picked a peck of pickled peppers|TEST2
我目前有这个正则表达式:(?<=[^\d\r\n])\d{2}-\d{4}(?!\d)
但它匹配行中间的部分社会保障号码:
123-45-6789
我的正则表达式将在 45-6789
。
由于纯数字边界在这里不起作用,您可以在左侧添加一个数字 + 连字符的检查。右手边界很清楚,它是零到三个大写字母后跟竖线。
也就是说,你可以使用
(?<=[^\d\r\n])(?<!\d-)\d{2}-\d{4}(?=[A-Z]{0,3}\|)
见regex demo。 详情:
(?<=[^\d\r\n])
- 紧靠左边,必须有数字以外的字符,CR,LF(?<!\d-)
- 紧靠左边,不应有数字 +-
\d{2}-\d{4}
- 两位数,-
,四位数(?=[A-Z]{0,3}\|)
- 紧接着是 0 到 3 个大写字母,然后是文字|
字符。
如果左侧边界可以是单个连字符或数字,则将 (?<=[^\d\r\n])(?<!\d-)
替换为 (?<=[^\r\n\d-])
。