我是 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/