Python-查找子字符串然后替换其中的所有字符

标签 python regex

假设我有这个字符串:

<div>Object</div><img src=#/><p> In order to be successful...</p>

我想替换 < 之间的每个字母和 ># .

所以,经过一些操作,我希望我的字符串看起来像:

<###>Object<####><##########><#> In order to be successful...<##>

请注意,两个符号之间的每个字符都被替换为 # (包括空格)。

这是我能得到的最接近的:

   r = re.sub('<.*?>', '<#>', string)

我的代码的问题是 < 之间的所有字符和 >被单个 # 取代,而我希望将每个单独的字符替换为 # .

我尝试了各种反向引用的混合,但无济于事。有人能指出我正确的方向吗?

最佳答案

那...呢:

def hashes(mo):
    replacing = mo.group(1)
    return '<{}>'.format('#' * len(replacing))

然后

r = re.sub(r'<(.*?)>', hashes, string)

使用 函数 作为 re.sub 的第二个参数的能力为您构建替换提供了巨大的灵 active (并且,像往常一样,一个命名的 def 产生的代码比任何狭窄的 lambda 都更具可读性——您可以使用有意义的名称、正常布局等)。

关于Python-查找子字符串然后替换其中的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28017450/

相关文章:

python - 为什么这不会将 jira 转换为已解决?

python - Django 国际化语言代码

javascript - 正则表达式计算不包括 html 标签的单词

regex - 使用 grep 匹配字符串和一个或多个数字

javascript - 如何从字符串开头获得与 RegEx 的匹配

javascript - 从 Javascript 调用 Python 脚本,两个本地文件

python - 使用 python 内省(introspection) DLL

PHP 正则表达式 : CSS Relative to Absolute

JavaScript 正则表达式帮助

python - 包上传到 pypi.org 损坏