gpt4 book ai didi

python - 在 Python 正则表达式中动态命名组

转载 作者:太空宇宙 更新时间:2023-11-04 11:04:57 24 4
gpt4 key购买 nike

有没有办法在 Python 中动态更新正则表达式组的名称?

例如,如果文本是:

person 1: name1
person 2: name2
person 3: name3
...
person N: nameN

如果事先不知道有多少人,你会如何命名组“person1”、“person2”、“person3”、...和“personN”?

最佳答案

不,但是你可以这样做:

>>> import re
>>> p = re.compile('(?m)^(.*?)\\s*:\\s*(.*)$')
>>> text = '''person 1: name1
person 2: name2
person 3: name3
...
person N: nameN'''
>>> p.findall(text)

输出:

[('person 1', 'name1'), ('person 2', 'name2'), ('person 3', 'name3'), ('person N', 'nameN')]

快速解释:

(?m)     # enable multi-line mode
^ # match the start of a new line
(.*?) # un-greedily match zero or more chars and store it in match group 1
\s*:\s* # match a colon possibly surrounded by space chars
(.*) # match the rest of the line and store it in match group 2
$ # match the end of the line

引用资料

关于python - 在 Python 正则表达式中动态命名组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2019005/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com