python正则表达式中的括号

时间:2014-01-23 10:34:20

标签: python regex

这是我的代码:

import re

prog2 = re.compile(r'\[\w\]')
activity = "[CS150]"
if prog2.match(activity): 
    print 'matched'
else:
    print 'unmatched'

我不知道它为什么打印无与伦比,因为我认为这种模式很好,并给出了正确的输入。

3 个答案:

答案 0 :(得分:1)

您需要匹配多个角色:

prog2 = re.compile(r'\[\w+\]')

注意+量词。没有它,\w字符类将只匹配一个字符,使用它,模式匹配至少一个字符。

演示:

>>> import re
>>> prog2 = re.compile(r'\[\w+\]')
>>> activity = "[CS150]"
>>> prog2.match(activity)
<_sre.SRE_Match object at 0x106b2f6b0>

答案 1 :(得分:0)

您必须在正则表达式的末尾添加*。否则它匹配单个字符。

答案 2 :(得分:0)

以下给出预期结果

import re
prog2 = re.compile(r'\[\w+\]')
activity = "[CS150]"
if prog2.match(activity): 
    print ('matched')
else:
    print ('unmatched')

>>matched

希望有用!