使用regexp将文本添加到单引号之间的字符串中

oogrdqng  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(97)

我试图在打印到终端时使用Python向字符串中添加一些转义字符。

import re

string1 = "I am a test string"
string2 = "I have some 'quoted text' to display."
string3 = "I have 'some quotes' plus some more text and 'some other quotes'.

pattern = ... # I do not know what kind of pattern to use here

然后我想添加控制台颜色转义(\033[92m表示绿色,\033[0m表示转义序列的结尾),并在带引号的字符串的开头和结尾添加结束字符,如下所示:

result1 = re.sub(...)
result2 = re.sub(...)
result3 = re.sub(...)

最终结果看起来像这样:

result1 = "I am a test string"
result2 = "I have some '\033[92mquoted text\033[0m' to display."
result3 = "I have '\033[92msome quotes\033[0m' plus some more text and '\033[92msome other quotes\033[0m'.

我应该使用什么样的模式来完成这个任务,re.sub是一个合适的方法吗,或者有没有更好的regex函数?

9jyewag0

9jyewag01#

您可以使用capturing group来捕获单引号内的求反'

res = re.sub(r"'([^']*)'", r"'\033[92m\1\033[0m'", s)

See this demo at regex101或Python演示tio.run(\1refers * 第一组 *)

相关问题