gpt4 book ai didi

python - 正则表达式捕获Python中字符串和\n字符之间的数据

转载 作者:行者123 更新时间:2023-11-30 22:28:08 26 4
gpt4 key购买 nike

我正在学习 python,我想捕获 'NUMBER:' 和\n 之间的数据

号码:3741733552\n556644

变量中换行符后面的数字,因此不能指望它来捕获。

    re.search(r'NUMBER:(.*?)[\n]', string_data).group(1)

我尝试了上面的代码(这是错误的),但没有成功,请帮助捕获该数字。谢谢。

编辑:

我有一个字符串“NAME: KHAN NASEEM\n\n22972 LAHSER RD\n\n...”,我像代码一样使用它

    name = re.search(r'NAME:\s*(.+)', string_data) 

但我得到的输出是“KHAN NASEEM\n\n22972 LAHSER RD\n\n...”,但我只想要 KHAN NASEEM。

\n = 字符串文字,而不是实际的换行符

最佳答案

如果您尝试从 NAME: 获取所有字符直到反斜杠后跟 n字母,使用

\bNAME:\s*(.+?)(?:\\n|$)

请参阅regex demo .

详细信息

  • \b - 单词边界
  • NAME: - 一个NAME:子串
  • \s* - 0+ 空格
  • (.+?) - 第 1 组:除行布雷尔字符外的一个或多个字符,尽可能少
  • (?:\\n|$) - 字符串结尾或反斜杠后跟 n

下面是Python demo :

import re
s = r'NAME: KHAN NASEEM\n\n22972 LAHSER RD\n\n...' # Note r'' prefix: all \ are literal backslashes here!
m = re.search(r'\bNAME:\s*(.+?)(?:\\n|$)', s)
if m:
print(m.group(1)) # => KHAN NASEEM

注意:您应该检查如何将文本从数据库提取到 Python。 \n实际上应该是换行符。修复后,您只需使用

r'\bNAME:\s*(.+)'

整个词NAME: 、0+ 个空格,并且第 1 组将捕获除换行符之外的一个或多个字符,尽可能多(即该行的其余部分)。

关于python - 正则表达式捕获Python中字符串和\n字符之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46713657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com