正则表达式与Rubular匹配,但不与Python re.sub()匹配

时间:2015-12-01 18:03:00

标签: python regex

我正在尝试在给定字符串中查找“[123]”形式的字符串,但我不希望看到我想要看到的结果,即'[123]'。

line = '[123] some string'
words = line.split()
for word in words:
    id = re.sub("\[(\d+)\]", "", word)
    print id

这给了我输出:

empty space
some
string

我不确定为什么re.sub()以这种方式格式化我正确匹配的字符串'[123]'。

2 个答案:

答案 0 :(得分:0)

输出它是正确的,我想你想要这样的东西:

line = '[123] some string'
print re.search("\[\d+\]", line).group(0)

输出:[123]

答案 1 :(得分:0)

也许这可以帮到你!

#!/usr/bin/env python -u
# -*- coding: utf-8 -*-

import re

line = '[123] some string'
words = line.split()
for word in words:
    pm = re.search('(\[.*?\])',word)
    if pm is not None:
        print pm.group(0)

输出:

python test.py                                           ] 3:13 
[123]