如何从转义字符'\';使用python正则表达式
我有一段文字如下:如何从转义字符'\';使用python正则表达式,python,regex,Python,Regex,我有一段文字如下: \Insights\Measures - Trending\01) POS\TARG Sales $\TARG Circular Sales $\TARG Circular Sales $ 我想从最后一个'\'字符中提取它 \Insights\Measures - Trending\01) POS\TARG Sales $\TARG Circular Sales $ 对此,您不需要正则表达式,只需要: 如果您确实想要使用正则表达式,那么您可以使用re.sub,使用$匹配字
\Insights\Measures - Trending\01) POS\TARG Sales $\TARG Circular Sales $\TARG Circular Sales $
我想从最后一个'\'
字符中提取它
\Insights\Measures - Trending\01) POS\TARG Sales $\TARG Circular Sales $
对此,您不需要正则表达式,只需要: 如果您确实想要使用正则表达式,那么您可以使用
re.sub
,使用$
匹配字符串的结尾,并使用[^\]
匹配所有非\
的内容:
import re
text = re.sub(r'\\[^\\]*$', '', text)
还有其他N种方法可以匹配相同的东西,但我认为在这种情况下这是一种过分的做法。对于regex,解决方案是
new_text = re.search(r'(.*)\\', text).group(1)
但是我同意,在您的示例中,regex是不必要的
>>> s = '\Insights\Measures - Trending\01) POS\TARG Sales $\TARG Circular Sales $\TARG Circular Sales $'
>>> print (s.rsplit('\\', 1)[0])
\Insights\Measures - Trending) POS\TARG Sales $\TARG Circular Sales $
a ="\Insights\Measures - Trending\01) POS\TARG Sales $\TARG Circular Sales $\TARG Circular Sales $"
print (a.split("\\")[-1])
你不需要正则表达式。字符串方法很容易做到这一点:
>>> s='Insights\\Measures - Trending\\01) POS\\TARG Sales $\\TARG Circular Sales $\\TARG Circular Sales $'
>>> s
'Insights\\Measures - Trending\\01) POS\\TARG Sales $\\TARG Circular Sales $\\TARG Circular Sales $'
>>> s[:s.rindex('\\')]
'Insights\\Measures - Trending\\01) POS\\TARG Sales $\\TARG Circular Sales $'
>>>
另一个简单的方法是:
>>> s.rpartition('\\')[0]
'Insights\\Measures - Trending\\01) POS\\TARG Sales $\\TARG Circular Sales $'
>>>
我不明白你想做什么。是否要从第一个字符串中删除
TARG Circular Sales$
,使用a.rsplit(“\\”,1)
可能会更快,尤其是随着潜在拆分数量的增加。
>>> s.rpartition('\\')[0]
'Insights\\Measures - Trending\\01) POS\\TARG Sales $\\TARG Circular Sales $'
>>>