Python:如何用正则表达式恢复可变条目数

2024-05-19 22:26:02 发布

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

是否可以使用正则表达式从字符串中选择数目可变的条目?你知道吗

例如,从这样的字符串:

line = '   @2A) lib_1, lib 2 , lib3   '

我想获得:

lib = ['lib_1','lib 2','lib3']

目前,我正在使用此代码…但我不知道是否有更好的方法:

lib = [n.lstrip().rstrip() for n in re.findall('^\s*@\d[A-Z]\)\s*(\S+.*\S*)', line)[0].split(',')]

非常感谢!!!你知道吗


Tags: 方法字符串代码inreforlibline
2条回答

您可以尝试搜索lib,后跟可选空格或下划线([_\s]*),后跟一个或多个数字(\d+):

>>> re.findall(r"lib[_\s]*\d+", line)
['lib_1', 'lib 2', 'lib3']

如果要处理的所有字符串中都存在'lib'关键字,则可以这样做。你知道吗

re.findall('lib.?\d', line)
['lib_1', 'lib 2', 'lib3']

如果关键字可以是任何东西,那么

re.findall('\w+.?\d', line)
['lib_1', 'lib 2', 'lib3']

相关问题 更多 >