我想搜索关键词(键是动态的)并以某种格式替换它们.例如:这些数据
keys = ["cat", "dog", "mouse"]
text = "Cat dog cat cloud miracle DOG MouSE"
Run Code Online (Sandbox Code Playgroud)
必须转换为
converted_text = "[Cat](cat) [dog](dog) [cat](cat) cloud miracle [DOG](dog) [MouSE](mouse)"
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
keys = "cat|dog|mouse"
p = re.compile(u'\\b(?iu)(?P<name>(%s))\\b' % keys)
converted_text = re.sub(p, '[\g<name>](\g<name>)', text)
Run Code Online (Sandbox Code Playgroud)
这工作正常,只有我不能将最后一个参数转换为小写.这样转换如下:
converted_text = "[Cat](cat) [dog](dog) [cat](cat) cloud miracle [DOG](DOG) [MouSE](MouSE)"
Run Code Online (Sandbox Code Playgroud)
如何将最后一个参数转换为小写?好像python无法编译\ L符号.
Ant*_*sma 10
您可以使用函数进行替换:
pattern = re.compile('|'.join(map(re.escape, keys)), re.IGNORECASE)
def format_term(term):
return '[%s](%s)' % (term, term.lower())
converted_text = pattern.sub(lambda m: format_term(m.group(0)), text)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5743 次 |
| 最近记录: |