![](/img/trans.png)
[英]Print all n-digit numbers whose product of digits equals to given product python
[英]re pattern to match all n-digit numbers in front of non-digit text
我想用 Python 3.7.5 为这个任务构建一个正则表达式。 输入文本如下:
alkdj flajf
123 adlf ja;ld fj 999
423 234 2359 kalfji lkja;lkd999
我的目标是检索所有处于领先位置的数字,每个数字后有一个空格字符,并获得如下所示的列表
[]
[123]
[423, 234, 2359]
任何建议表示赞赏!
import re
data = '''
alkdj flajf
123 adlf ja;ld fj 999
423 234 2359 kalfji lkja;lkd999
'''
pattern = re.compile(r'([0-9 ]+) \w.*?')
pattern.findall(data)
输出:
['123', '423 234 2359']
如果您想单独捕获数字,我们可以使用花哨的\\G
continue 运算符:
import regex as re
rgx = r"(?|^(\d+)|\G \K(\d+))"
test_str = ("alkdj flajf\n"
"123 adlf ja;ld fj 999\n"
"423 234 2359 kalfji lkja;lkd999")
matches = re.finditer(rgx, test_str, re.MULTILINE)
for match in matches:
print(match.group(1))
演示(演示需要 PCRE,这就是我导入替代正则表达式模块的原因)
我还使用分支重置(?|)
和\\K
丢弃运算符来使事情正常进行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.