在Python中将字符串中的选定部分存储在变量中

在Python中将字符串中的选定部分存储在变量中,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,我有一个变量字段,其中存储的字符串如下: Field= "In Field 'fieldname':(Value1) has changed from (1) to (2)" 从存储在变量字段中的这个字符串中,我希望捕获两个不同变量中的值(1)和(2),如: OldValue=1 NewValue=2 有人能帮我吗? 我在Python中处理这些变量这会找到括号中的数字: >>> import re >>> Field= "In Field 'fieldna

我有一个变量字段,其中存储的字符串如下:

Field= "In Field 'fieldname':(Value1) has changed from (1) to (2)"
从存储在变量字段中的这个字符串中,我希望捕获两个不同变量中的值(1)和(2),如:

OldValue=1
NewValue=2
有人能帮我吗?
我在Python中处理这些变量

这会找到括号中的数字:

>>> import re
>>> Field= "In Field 'fieldname':(Value1) has changed from (1) to (2)"
>>> OldValue, NewValue = map(int, re.findall(r'\((\d+)\)', Field))
>>> OldValue
1
>>> NewValue
2
在这种情况下,您可能不仅有两个值

vals = list(map(int, re.findall(r'\((\d+)\)', Field)))

将完成这个技巧

标记
python
很好,但是标记
python2.7
python-3x
没有意义,您使用的是哪一个?如果我想捕获,我必须做什么更改:name=fieldname您想捕获
?像
:(Value1)
以及
(1)
(2)
?如果a I有int值,你的技巧也会起作用,假设旧值和新值不是int,那么会有什么变化?不,我想在name=filedname中加上cath,并改变值(如果它们不是int类型的话)@hulk007,如果它们不是
int
re.findall(r'\(\d+)\,Field)
单独作为字符串返回