2014-01-24 32 views
1

我必须在给定字符串内匹配此模式[**],但它不会给出准确的结果。Python中的特殊字符模式匹配

import re 
str1 = '[**] [1:123:43] hello madam [**]' 
m1 = re.match('/[/*/*/] .*', str1) 

请帮忙!!

+1

您SCAPE用反斜杠符号(''\\) –

+0

你也应该看看使用使用RegexBuddy,它在构建正则表达式时非常有用。 – sleepycal

回答

2

使用反斜杠(\)逃跑元字符,而不是正斜杠(/):

>>> import re 
>>> str1 = '[**] [1:123:43] hello madam [**]' 
>>> m1 = re.match(r'\[\*\*\] .*', str1) 
>>> m1 
<_sre.SRE_Match object at 0x0000000002898100> 
>>> m1.group() 
'[**] [1:123:43] hello madam [**]' 

BTW,使用r'raw string literal',你不需要逃避反斜杠本身。


如果你只是想检查字符串开始[**],使用str.startswith

>>> str1.startswith('[**]') 
True