【发布时间】:2011-06-05 01:56:55
【问题描述】:
假设我有一个包含很多随机内容的字符串,如下所示:
strJunk ="asdf2adsf29Value=five&lakl23ljk43asdldl"
我有兴趣获取位于 'Value=' 和 '&' 之间的子字符串,在本例中为 '5'。
我可以使用如下的正则表达式:
match = re.search(r'Value=?([^&>]+)', strJunk)
>>> print match.group(0)
Value=five
>>> print match.group(1)
five
为什么 match.group(0) 是整个“Value=5”而 group(1) 只是“5”?有没有办法让我只得到“五”作为唯一的结果? (这个问题源于我对正则表达式的掌握很薄弱)
我还必须在这个字符串中进行替换,如下所示:
val1 = match.group(1)
strJunk.replace(val1, "six", 1)
产量:
'asdf2adsf29Value=six&lakl23ljk43asdldl'
考虑到我计划一遍又一遍地执行上述两项任务(查找 'Value=' 和 '&' 之间的字符串,以及替换该值),我想知道是否还有其他更有效的方法查找子字符串并将其替换为原始字符串。我很好地坚持我所拥有的,但我只是想确保如果有更好的方法,我不会占用更多的时间。
【问题讨论】:
标签: python regex string replace