我有许多字符串,如下所示:
Virtus.pro (13)
mousesports (16)
Natus Vincere (12)
如您所见,在所有情况下,这些并不是将名称与数字分开的真正常见方法。我对正则表达式真的很陌生。有没有人知道我如何将这些字符串拆分为包含 2 个变量?
Virtus.pro
和13
. 然后mousesports
和16
?
如您所见,Natus Vincere
名称的两个部分之间有一个空格。
真的很挣扎,我只能想出一个正则表达式来提取数字。但这并非每次都有效。
r'([a-zA-Z. ]+) ('('d{1,2}'))'
我在python中尝试了这个,它对我有用。我认为您最好提供更多细节,例如,名称的格式,它包含哪种标点符号,数字,它有多少位数字等。
在我上面的答案中,名称字符串可以包含"."和",数字将是 1 或 2 位数字。您可以将其更改为
r'([a-zA-Z. ]+) '(('d+)')'
以匹配您不知道它包含多少位数字的数字。它顺便对比赛结果进行分组,第二组(索引 1(是名称,第三组(索引 2(是数字。
>>> import re
>>> are=re.compile(r'([a-zA-Z. ]+) '(('d{1,2})')')
>>> d=are.search('Virtus.pro (13)')
>>> d.group()
'Virtus.pro (13)'
>>> d.group(1)
'Virtus.pro'
>>> d.group(2)
'13'
希望对您有所帮助。
嗨,
的,顺便说一句
你可以使用这样的东西
#!/usr/bin/env python
import re
regex = re.compile('^(.*)'(('d+)')$')
my_match = regex.match('Virtus.pro (13)')
然后,您可以执行以下操作:
m.group(1) #to get 'Virtus.pro '
m.group(2) #to get '13'
这是在python中实现