【发布时间】:2017-06-02 21:50:28
【问题描述】:
在 Python 中,我遇到了一个正则表达式的问题,它在前瞻中有 2 个否定条件。这似乎应该很容易,但不知何故,经过多次尝试后我没有看到解决方案......
我有大段文字,其中包括:
受益人
受益人账户
收款银行
我想要的是:
受益人姓名
受益人账户
收款银行
我不想错误地改变
受益人姓名
因为这可能会导致
受益人姓名账户
受益人姓名银行
也就是说,我要改变
“受益人”到“受益人姓名”
当且仅当 “受益人”后面没有“账户” 和 “受益人”后面没有“银行”
但是如何使用 AND 测试两个前瞻以确保满足这两个条件?
在正则表达式中,我只看到 OR - 像这样: bene_lookahead_or = r'beneficiary\s?(?!acct) |受益人\s?(?!bank)'
有 Python 正则表达式 AND 吗? 如果没有,是否有 Python 正则表达式否定方式? 也就是说,像布尔代数 NOR 一样否定 OR 如 将受益人更改为受益人姓名 如果不 ( 受益人后跟act 或者 受益人后面是银行 )
我显然在这里遗漏了一些东西...... 感谢您的帮助!
【问题讨论】:
标签: python regex boolean-logic lookahead negative-lookahead