【发布时间】:2019-04-04 15:35:04
【问题描述】:
我正在编写一个正则表达式来选择以下文本中超过 4 个数字的数字之前存在的 30 个字符。这是我的代码:
text = "I went and I bought few tickets and ticket numbers 100000,100001 and 100002.I bought them for 200,300 and 400 USD. Box office collections were 55555555 USD"
reg=".{0,30}(?:[\d]+[ .]?){5,}"
regc=re.compile(reg)
res=regc.findall(text)
这给出了以下部分结果
我只得到 100000 之前的 30 个字符。
如何获得 100001 之前的 30 个字符以及如何获得 100002 之前的 30 个字符?
【问题讨论】:
-
预期的结果是什么?通过尝试修复它,我得到了
['D. Box office collections were 55555555', 'cket numbers 100000,100001 and 100002', 'ets and ticket numbers 100000,100001', 'few tickets and ticket numbers 100000'] -
您是否必须使用正则表达式来捕获字符串中所有超过 4 位数字前面的字符?
-
@Wiktor 是的,这会有所帮助.. 你还可以帮我提取 100001 和 100002 以及 100000 就像在第一个字符串中一样..
-
@benvc 是的,我想捕获 4 位数字之前的字符