Python中列表理解中的正则表达式替换

Python中列表理解中的正则表达式替换,python,regex,string,list,Python,Regex,String,List,有人知道如何在Python中使用re.sub来理解列表吗 我用的是 >>> a = ["N","!","1","abc"] >>> [(re.sub(r'(h|N|!|N|1)', r"'\033[91m'\g<1>'\033[0m'", 'x')) for x in a] ['x', 'x', 'x', 'x'] >>a=[“N”、“!”、“1”、“abc”] >>>[(关于a中x的r'(h | N |!| N | 1)'r“'\033[91m

有人知道如何在Python中使用re.sub来理解列表吗

我用的是

>>> a = ["N","!","1","abc"]
>>> [(re.sub(r'(h|N|!|N|1)', r"'\033[91m'\g<1>'\033[0m'", 'x')) for x in a]
['x', 'x', 'x', 'x']
>>a=[“N”、“!”、“1”、“abc”]
>>>[(关于a中x的r'(h | N |!| N | 1)'r“'\033[91m'\g'\033[0m''x'))
['x','x','x','x']
正如您所看到的,Im只返回x作为列表元素


谢谢,

正如Kevin所评论的,您没有使用
x
,而是使用字符串literal
'x'

>>> [(re.sub(r'(h|N|!|N|1)', r"'\033[91m'\g<1>'\033[0m'", x)) for x in a]
["'\x1b[91m'N'\x1b[0m'", "'\x1b[91m'!'\x1b[0m'", "'\x1b[91m'1'\x1b[0m'", 'abc']

我看到你在一个中为x做了
,但是你从来没有实际使用过
x
变量。这是故意的吗?取消“x”的引号,它就会起作用。
>>> [(re.sub(r'([hN!1])', r"'\033[91m'\g<1>'\033[0m'", x)) for x in a]
["'\x1b[91m'N'\x1b[0m'", "'\x1b[91m'!'\x1b[0m'", "'\x1b[91m'1'\x1b[0m'", 'abc']