mar*_*rco 2 python regex string replace
我是 python 的初学者,目前正在努力解决一些问题:
我想在一个字符串中进行一些更改。是否可以使用单个星号 (*) 作为几个字符的替代小丑?例如我有一个字符串:
string1 = "The new year is about to become an old year"
Run Code Online (Sandbox Code Playgroud)
我想使用这种模式来查找:
find:
*year*year*
replace it with:
*century*one*
Run Code Online (Sandbox Code Playgroud)
这将导致:
string1 = "The new century is about to become an old one"
Run Code Online (Sandbox Code Playgroud)
意思是“*”字符将替换“year”和“year”单词之间和之前的所有字符。那可能吗?
值得您花时间研究一下正则表达式。在您的情况下,您需要知道的主要事情是.匹配任何单个字符,.*匹配零个或多个任何字符,括号用于分组,反斜杠后跟数字形成反向引用(现有组的)。
因此,要匹配year,后跟任意内容,然后year再次使用year.*year.
现在,要替换,请使用分组和反向引用:
import re
string2 = re.sub('year(.*)year', r'century\1one', string1)
Run Code Online (Sandbox Code Playgroud)
对于大多数初学者来说,有效使用正则表达式绝对不是显而易见的。 有关温和介绍的一些建议,请参阅以下问题:
上面的问题已经被删除了,而且很多链接都已经死了。截至撰写本文时,其中的一些内容仍然有效:
当然,谷歌搜索应该会找到大量资源。
| 归档时间: |
|
| 查看次数: |
16723 次 |
| 最近记录: |