我有这条线
Server:x.x.x.x # U:100 # P:100 # Pre:0810 # Tel:xxxxxxxxxx
我希望复制Pre:value之后的值0810 我怎么能这样做?
答案 0 :(得分:1)
你可以使用re模块(' re'代表正则表达式)
此解决方案假定您的Pre:
字段始终包含四个数字。
如果数字的长度不同,您可以将{4}
(预计恰好为4)替换为+
(期望'一个或多个')
>>> import re
>>> x = "Server:x.x.x.x # U:100 # P:100 # Pre:0810 # Tel:xxxxxxxxxx"
>>> num = re.findall(r'Pre:(\d{4})', x)[0] # re.findall returns a list
>>> print num
'0810'
你可以在这里阅读:
答案 1 :(得分:1)
在这些情况下,通常情况下,最佳答案取决于字符串的变化方式,我们只有一个例子可以概括。
无论如何,您可以使用str.split
等字符串方法直接获取它:
>>> s = "Server:x.x.x.x # U:100 # P:100 # Pre:0810 # Tel:xxxxxxxxxx"
>>> s.split()[6].split(":")[1]
'0810'
但我倾向于选择更通用的解决方案。例如,取决于格式如何更改,例如
>>> d = dict(x.split(":") for x in s.split(" # "))
>>> d
{'Pre': '0810', 'P': '100', 'U': '100', 'Tel': 'xxxxxxxxxx', 'Server': 'x.x.x.x'}
创建所有值的字典,之后您可以访问任何元素:
>>> d["Pre"]
'0810'
>>> d["Server"]
'x.x.x.x'