在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)
单独作为字符串返回