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