Can';在Python中找不到正确的正则表达式!我只需要过滤一次表示子模式的名称

Can';在Python中找不到正确的正则表达式!我只需要过滤一次表示子模式的名称,python,regex,pandas,Python,Regex,Pandas,我有一个数据框中的列名列表: ['s_0','s_1','s_2','s_0_m','s_1_m','s_2_m'] 我需要制作一个理解列表,只选择末尾没有m的名称(s_0,s_1…),或者只选择末尾有m的名称(s_0,s_1,m等) 所以我想应该是这样的 [col for cols in df.columns if re.search(regex,col)] 但是我搞不懂正则表达式,请帮帮我 我不完全确定,如果可以在纯Python中快速执行,为什么要使用regex # Initializa

我有一个数据框中的列名列表:

['s_0','s_1','s_2','s_0_m','s_1_m','s_2_m']
我需要制作一个理解列表,只选择末尾没有m的名称(s_0,s_1…),或者只选择末尾有m的名称(s_0,s_1,m等)

所以我想应该是这样的

[col for cols in df.columns if re.search(regex,col)]

但是我搞不懂正则表达式,请帮帮我

我不完全确定,如果可以在纯Python中快速执行,为什么要使用regex

# Initialization
col = ['s_0','s_1','s_2','s_0_m','s_1_m','s_2_m']

# for i in col, return if the last letter (i[-1]) is not equal (!=) to "m"
print([i for i in col if i[-1] != "m"])

# ['s_0', 's_1', 's_2']

您可以使用
“[^m]$”
(如果您不关心匹配空字符串)。如果
\u m
部分总是在末尾,我会使用
endswith
字符串方法:
如果x.endswith('u m')==True,则使用列列表中的x=x,如果x.endswith('u m')==False,则使用
如果x.endswith('u m')==False,则使用列列表中的x=x