'非固定宽度正则表达式后顾替换的替代方案; Python'

2024-06-16 13:24:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经看过了这个问题之前发布的许多变体,但是我仍然需要帮助来制定一个解决方案。谢谢你的帮助。在

非固定宽度regex查找的替代方法似乎是创建一个捕获组。 有人能帮我解一下语法吗?在

假设有不同的句子,其中有“account”、“credit”和“debit”。我想和那些说账户被借记的人匹配。 所以我想消除匹配一个字符串,这个字符串表示它被记入贷方。 当“帐户”前面不是“贷方”而是后面/前面是“借方”时,如何匹配它?在

下面是我尝试在匹配“account”时排除字符串“credit”。在

(?<!(\bcredit))(.account)

“贷记您的帐户”—无法消除“贷记”

“考虑立即贷记您的帐户”—未能消除“信用”

“credit account”—消除了“credit”,但这要归功于regex中的“”。在

我想把变成{0,20},但这并不能使if按预期运行。在

感谢任何帮助或反馈


Tags: 方法字符串宽度语法帐户账户account变体
1条回答
网友
1楼 · 发布于 2024-06-16 13:24:45

可以通过选择与简单正则表达式不匹配的字符串来工作:

import re

s1 = "credit your account"
s2 = "considering crediting your account promptly"
s3 = "credit account"
s4 = "we are debiting your account"

pattern = '.*(credit.*account|account.*credit).*'

print(re.match(pattern, s1))
print(re.match(pattern, s2))
print(re.match(pattern, s3))
print(re.match(pattern, s4))

输出为:

^{pr2}$

如果使用re.search(),则只能使用正则表达式的圆括号部分。在

有了感兴趣的刺(不匹配的)之后,可以应用另一个正则表达式从中检索部分。在

相关问题 更多 >