假设我有一个字符串,里面含有很多随机的东西,就像下面这样:
strJunk ="asdf2adsf29Value=five&lakl23ljk43asdldl"
我希望获取在“Value=”和“&”之间的子字符串,在这个例子中应该是“five”。
我可以使用以下正则表达式:
match = re.search(r'Value=?([^&>]+)', strJunk)
>>> print match.group(0)
Value=five
>>> print match.group(1)
five
为什么match.group(0)是整个字符串 'Value=five' 而group(1)只是 'five'?我是否有办法只获取 'five' 作为唯一的结果?(这个问题源于我对正则表达式的理解薄弱)
我还需要在这个字符串中进行替换,例如以下内容:
val1 = match.group(1)
strJunk.replace(val1, "six", 1)
这将产生:
'asdf2adsf29Value=six&lakl23ljk43asdldl'
考虑到我计划反复执行上述两个任务(查找'Value='和'&'之间的字符串,以及替换该值),我想知道是否有其他更有效的方法来查找子字符串并在原始字符串中替换它。我可以继续使用现有的方法,但我只是想确保如果有更好的方法存在,我不会浪费更多时间。