2010-06-23 62 views
1

我有非常简单的python脚本来匹配一些特殊字符,如 - ,+, - ,. 但我没有得到预期的结果,而使用正则表达式\匹配单个'\'字符。问题,而在正则表达式中使用'\'匹配特殊字符''

import re 
pat = r'[-+*\\]' 
text = 'fdkjdfk\sdsdd' 
if re.search(pat,text): 
    print re.search(pat,text).group() 
else: 
    print "not found" 

在上面的代码运行时,它打印“没有找到” 看来我在这里做了一些错误,任何帮助感激!

+1

没有摄制,比赛就好了。 – SilentGhost 2010-06-23 10:02:54

+0

上面的代码适用于我 - 它打印'\\'。 – 2010-06-23 10:03:09

+0

对不起,我觉得我搞砸了,我没有使用原始字符串,它必须是'pat ='[ - + * \\\]'''' – aberry 2010-06-23 10:32:57

回答

2

\是一个转义字符。

尝试逃脱它:

text = 'fdkjdfk\\sdsdd' 
+0

感谢您的回复... 使用text ='fdkjdfk \\ sdsdd',然后pat = r'[ - + * \\\]'匹配正确。 但是,在我的文本中是否意味着我必须使用(替换'\')char'\\'而不是'\'。 – aberry 2010-06-23 10:06:04

+0

我没有足够使用Python来给出评论中问题的明确答案,但文档http://docs.python.org/release/2.5.2/ref/strings.html更详细地解释了转义序列。 – 2010-06-23 10:20:34

+0

不,您不需要使用'replace()' - 在两个反斜杠中输入一个反斜杠。 – 2011-09-06 18:45:54