Python复制字符串的一部分

时间:2014-10-22 02:39:39

标签: python string copy

我有这条线

Server:x.x.x.x # U:100 # P:100 # Pre:0810 # Tel:xxxxxxxxxx

我希望复制Pre:value之后的值0810 我怎么能这样做?

2 个答案:

答案 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'

你可以在这里阅读:

https://docs.python.org/2/howto/regex.html

答案 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'