Python 2.7 如果找到关键字组,如何停止正则表达式搜索前瞻(已关闭)
我有以下字符串,我需要在其上运行搜索以仅提取帐户ID并避免提取与交易相关的ID-Python 2.7 如果找到关键字组,如何停止正则表达式搜索前瞻(已关闭),python-2.7,regex-negation,regex-lookarounds,regex-group,Python 2.7,Regex Negation,Regex Lookarounds,Regex Group,我有以下字符串,我需要在其上运行搜索以仅提取帐户ID并避免提取与交易相关的ID- 事务处理ID 989 Trx第989号 帐户ID 1234567890 账号1234567890 Acnt第1234567890号 账户#1234567890 身份证号码1234567890 我已经创建了一个正则表达式,只提取出现在文本中的帐户id,像这样提取正则表达式中的第三组 import re txt = <all strings from 1 to 7 one by one> re1="(No.
import re
txt = <all strings from 1 to 7 one by one>
re1="(No.|#|Number|ID)(/s)(\d{10,12})"
rg = re.compile(re1,re.IGNORECASE|re.DOTALL)
m = rg.search(txt)
if m:
print m.group(3)
请帮忙 解决方案-在正则表达式中使用条件语句
(transaction|trx)(?(1)|\d{3,12})
解释-
(交易| trx)
=>第一组
(?(1)|\d{3,12})
=>第二组-其中?(1)
检查是否找到了第一组,如果没有找到,则匹配“|”之后的任何组。
管道-否则运行之前的任何组。
然后运行=>m.group()
它将返回数字或单词
在业务逻辑中,对值进行类型转换,并检查是否可以将其类型转换为INT,然后很好。如果没有,那么我们正确计算出的值就不是INT
(transaction|trx)(?(1)|\d{3,12})