我需要以这种方式管理Python中的字符串:
我有这样的字符串'> =',' =','< =','< ','>'在他们面前,例如:
'>=1_2_3'
'<2_3_2'
我想要实现的是分别分别获取字符串:
'>=', '1_2_3'
'<', '2_3_2'
基本上我需要从第一个数字字符开始拆分它们。
有一种方法可以使用正则表达式实现此结果,而无需迭代字符串检查字符是数字还是&#39; _&#39;?
谢谢。答案 0 :(得分:1)
import re
strings = ['>=1_2_3','<2_3_2']
for s in strings:
mat = re.match(r'([^\d]*)(\d.*)', s)
print mat.groups()
输出:
('>=', '1_2_3')
('<', '2_3_2')
这只是将所有内容分组,直到一个组中的第一个数字,然后是第一个数字和一秒之后的所有内容。
您可以使用mat.group(1)
,mat.group(2)
答案 1 :(得分:1)
这样做:
re.split(r'(^[^\d]+)', string)[1:]
示例:
>>> re.split(r'(^[^\d]+)', '>=1_2_3')[1:]
['>=', '1_2_3']
>>> re.split(r'(^[^\d]+)', '<2_3_2')[1:]
['<', '2_3_2']
答案 2 :(得分:0)
答案 3 :(得分:0)
可能有更好的方法,但你可以用捕获分割,然后加入后两个元素:
values = re.split(r'(\d)', '>=1_2_3', maxsplit = 1)
values = [values[0], values[1] + values[2]]