如何使用python正则表达式从转义字符'\'中提取字符串

时间:2018-07-20 12:56:18

标签: 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 $

5 个答案:

答案 0 :(得分:2)

您不需要正则表达式,只需要str.rindex

text = text[:text.rindex('\\')]

如果您确实想使用正则表达式,则可以使用re.sub,使用$来匹配字符串的结尾,并使用[^\\]来匹配所有非\的东西。 :

import re

text = re.sub(r'\\[^\\]*$', '', text)

还有其他N种匹配同一事物的方法,但是我认为在这种情况下,这太过分了。

答案 1 :(得分:1)

>>> 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 $

答案 2 :(得分:0)

使用正则表达式的解决方案是

new_text = re.search(r'(.*)\\', text).group(1)

但是我同意您的示例中不需要使用正则表达式

答案 3 :(得分:0)

string.split将在这里工作

a ="\Insights\Measures - Trending\01) POS\TARG Sales $\TARG Circular Sales $\TARG Circular Sales $"
print (a.split("\\")[-1])

答案 4 :(得分:0)

您不需要正则表达式。字符串方法很容易做到:

>>> 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 $'
>>>