例如字符串是“abbacdeffel”,模式是“xyyx”替换为“1234”
所以它会从“abbacdeffel”到“1234cd1234l”
我想过这个问题,但我什么也想不出来。起初我以为字典可能会有所帮助,但仍然没有想到。
请您参考如下方法:
您要执行的操作可以通过使用 regex 或更常见的正则表达式来完成。编程中的正则表达式使您能够从字符串中提取您想要的内容。 在您的情况下,您希望将字符串与模式 abba 匹配,因此使用以下正则表达式:
(\w+)(\w+)\2\1
https://regex101.com/r/hP8lA3/1
您可以匹配两个词组并使用反向引用来确保第二组在前,然后是第一组。
所以在 python 代码中实现它看起来像这样:
首先,在python中导入regex模块
import re
然后,声明你的变量
text = "abbacdeffel"
re.finditer 返回一个可迭代对象,因此您可以遍历所有组
matches = re.finditer(r"(\w)(\w)\2\1", text)
遍历正则表达式找到的所有匹配项并将模式替换为“1234”
for match in matches:
text = text.replace(match.group(0), "1234")
用于调试:
print(text)
完整代码:
import re
text = "abbacdeffel"
matches = re.finditer(r"(\w)(\w)\2\1", text)
for match in matches:
text = text.replace(match.group(0), "1234")
print(text)
您可以在此处了解有关正则表达式的更多信息:https://regexone.com/references/python
