在Python中拆分字符串(2.7)

2024-04-26 18:24:36 发布

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

我有一个字符串如下:

26   (passengers:22  crew:4)

或者

32   (passengers:?  crew: ?)

是的。我要做的是把代码分开,这样只提取代表乘客和机组人员数量的数字。如果是个问号,我会找一个“”来代替它。你知道吗

我知道我可以用字符串.替换("?",“”)替换?但是,如何分别提取机组人员或乘客的数字字符?数字可能从两位数到三位数不等,因此我无法从字符串中或以特定间隔分割最后几个字符。你知道吗

提前谢谢


Tags: 字符串代码数量间隔代表数字字符我会
1条回答
网友
1楼 · 发布于 2024-04-26 18:24:36

与之匹配的正则表达式是:

r'\(\s*passengers:\s*(\d{1,3}|\?)\s+ crew:\s*(\d{1,3}|\?)\s*\)'

加入了一些额外的空格容差。你知道吗

结果:

>>> import re
>>> numbers = re.compile(r'\(\s*passengers:\s*(\d{1,3}|\?)\s+ crew:\s*(\d{1,3}|\?)\s*\)')
>>> numbers.search('26   (passengers:22  crew:4)').groups()
('22', '4')
>>> numbers.search('32   (passengers:?  crew: ?)').groups()
('?', '?')

相关问题 更多 >