Python:如何替换并知道是否匹配

标签 python regex

我知道 re.sub(pattern, repl,text) 可以在模式匹配时进行替换,然后返回替换。

我的代码是:

text = re.sub(pattern, repl, text1)

我必须定义另一个变量来检查它是否被修改:

text2 = re.sub(pattern, repl, text1)
matches = text2 != text1
text1 = text2

它有问题,例如:text1='abc123def'pattern = '(123|456)'repl = '123'。 替换后是同一个字符串,所以matches为false,但实际上是匹配的。

最佳答案

使用re.subn

Perform the same operation as sub(), but return a tuple (new_string, number_of_subs_made).

然后检查替换的次数。例如:

text2, numReplacements = re.subn(pattern, repl, text1)
if numReplacements:
    # did match
else:
    # did not match

关于Python:如何替换并知道是否匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3969519/

相关文章:

python - 在 Python 中,将异常记录到文件的最佳方式是什么?

python - 关于Python模拟二维数组功能的实例

python - PyTorch 在张量和 numpy 数组之间的转换 : the addition operation

javascript - JavaScript 中的电话正则表达式

Javascript 由方括号和数字分割

python - 如何不断向用户询问文件

python - Django 删除唯一字段的表单错误

javascript - 正则表达式 [任意数字]

python - 在这种情况下如何提取 url 的一部分?

javascript - 验证正则表达式