Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从转义字符'\';使用python正则表达式_Python_Regex - Fatal编程技术网

如何从转义字符'\';使用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 $'
>>>