大家好我想拆分下面的字符串,这些字符串是在python中使用正则表达式从文本文件中解析出来的。
Inside the text file(filename.txt)
iPhone.Case.1.left=1099.0.2
new.phone.newwork=bla.jpg
我想要一个函数,当循环遍历arrayOfStrings时,将它拆分以便显示以下内容
['iPhone','Case','1','left','1099.0.2']
['new','phone','newwork','bla.jpg']
这是我到目前为止所做的事情
import re
pattern = '(?<!\d)[\.=]|[\.=](?!\d)'
f = open('filename.txt','rb')
for line in data_file:
str_values = re.split(pattern, line.rstrip())
print str_values
这就是正在印刷的内容
['iPhone', 'Case', '1', 'left', '1099.0.2']
['new', 'phone', 'newwork', 'bla', 'jpg']
但我希望最后一个数组是
['new','phone','newwork','bla.jpg']
答案 0 :(得分:1)
如果你有足够的输入数据,你可以随时首先在=
字符处拆分,然后在每个.
字符处拆分前半部分,我会完全跳过正则表达式,因为它很复杂,不太好读。
以下是这样做的一个例子:
s = 'new.phone.newwork=bla.jpg'
l = str.split(s.split('=')[0], '.') + s.split('=')[1:]
答案 1 :(得分:0)
试试这个:
% python
>>> import re
>>> arrayOfStrings =["iPhone.Case.1.left=1099.0.2", " new.phone.newwork=bla.jpg"]
>>> def printStuff(arg):
... for i,x in enumerate(arg):
>>> print(arg[i].split('=')[i].split('.') + [ arg[i].split('=')[1] ])
...
>>> printStuff(arrayOfStrings)
['iPhone', 'Case', '1', 'left', '1099.0.2']
['bla', 'jpg', 'bla.jpg']