使用正则表达式获取字符后跟新行项目

Get character followed by new line item using regex

我正在尝试使用正则表达式在特定字母后换行获取字符。我的原始数据如下所示:

 Total current charges (please see Current account details) ,414.69
 ID Number
 1001166UNBEB
 ACCOUNT SUMMARY
 SVL0
 BALANCE OVERDUE - PLEASE PAY IMMEDIATELY ,814.80

我想得到 ID Number

我的尝试在这里:

ID_num = re.compile(r'[^ID Number[\r\n]+([^\r\n]+)]{12}')

ID num 的长度始终为 12,并且始终在 ID Number 之后,这就是为什么我在表达式中指定长度并尝试检测之后的元素。

但这并没有达到预期效果。

有人能帮帮我吗?

您的正则表达式无法正常工作,因为在模式的开头使用了 [ ],这些用于字符集。
所以将其替换为 ( )。 你的模式看起来像:r'^ID Number[\r\n]+([^\r\n]+){12}'

但您可以将模式简化为:ID Number[\s]+(\w+) \r\n 将在 \s 中匹配,数字和字母字符将在 \w 中匹配。

import re
s = """
Total current charges (please see Current account details) ,414.69
ID Number
1001166UNBEB
ACCOUNT SUMMARY
SVL0
BALANCE OVERDUE - PLEASE PAY IMMEDIATELY ,814.80
"""
print(re.findall(r"ID Number[\s]+(\w+)", s))
# ['1001166UNBEB']