python - 在 python 字符串替换中使用星号字符 (*) 作为 clown ?

标签 python regex string replace

我是 python 的初学者,目前正在努力解决一些问题:

我想对单个字符串进行一些更改。 是否可以使用单个星号 (*) 作为几个字符的替代 clown ? 例如我有一个字符串:

string1 = "The new year is about to become an old year"

我想使用这个模式来查找:

find:
*year*year*

replace it with:
*century*one*

这将导致:

string1 = "The new century is about to become an old one"

意思是“*”字符将替换“year”和“year”之间和之前的所有字符。 这可能吗?

最佳答案

您值得花时间研究 regular expressions .在你的情况下,你需要知道的主要事情是 . 匹配任何单个字符, .* 匹配零个或多个任何字符,括号用于分组,和反斜杠后跟数字形成一个反向引用(现有组的)。

因此,要匹配 year,然后是任意内容,然后再次是 year,请使用 year.*year

现在,要替换,请使用分组和反向引用:

import re
string2 = re.sub('year(.*)year', r'century\1one', string1)

对于大多数初学者来说,正则表达式的有效使用绝对不是显而易见的。有关更温和的介绍的一些建议,请参阅此问题:

https://stackoverflow.com/questions/2717856/any-good-and-gentle-python-regexp-tutorials-out-there

关于python - 在 python 字符串替换中使用星号字符 (*) 作为 clown ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20791207/

相关文章:

regex - 是否支持命名捕获组?如果可以,怎么搞?

java - 在 Java 中使用 Thread#stop() 来终止一个正在运行的线程是否可以接受?

php - 如果数组是使用 explode() 创建的,in_array() 将不再像预期的那样工作

objective-c - 将对象的 NSArray 连接到字符串中,但需要能够指定属性

python - 在 django-filer 的文件模型中使用属性而不是字段的理由是什么

python - 复制列表中的每个成员

python - 如何使用 python 检查来自 API 的数据是否在 elasticsearch 索引中,如果不在,则将其插入

regex - 使用 curl 列出文件

java - 分解任何字符串

python - 使用 Python 字典/列表