好的,我知道在循环中使用正则表达式编辑字符串可能不是最佳方法。只是为了探究兴趣:我需要如何构建一个循环,只要它匹配就执行一个正则表达式模式,然后一直循环执行直到没有匹配为止?我正在使用Python进行此操作。
match = re.search(r'pattern, repl, str)
while match (is True, == True?):
sub = re.sub(r'pattern, repl, str)
else:
Do something else
好的,我知道在循环中使用正则表达式编辑字符串可能不是最佳方法。只是为了探究兴趣:我需要如何构建一个循环,只要它匹配就执行一个正则表达式模式,然后一直循环执行直到没有匹配为止?我正在使用Python进行此操作。
match = re.search(r'pattern, repl, str)
while match (is True, == True?):
sub = re.sub(r'pattern, repl, str)
else:
Do something else
re.sub
通常对其找到的所有非重叠匹配执行替换(尽管您可以通过传递count
参数来限制它),因此将其放在循环中是相当不寻常的,尽管我猜如果替换的结果创建了更多与模式匹配的子字符串,则这样做是有意义的。但是,正如 nnnmmm 指出的那样,您没有在循环内更新match
,因此它要么永远不会运行,要么就是一个无限循环。 - PM 2Ring