在标记中查找字符串而不在python中找到标记

时间:2011-06-13 22:18:55

标签: python regex bbcode

我在标签中有一个字符串,我想要提取而不会找到标签。我试过了:

string = re.search("\[tag\](.*?)\[tag\]", "[tag]string[tag]")
print(string.group(0))

string = re.search("/\[tag\](.*?)\[tag\]/i", "extra[tag]string[tag]extra")
print(string.group(0))

都返回

[tag]string[tag]

3 个答案:

答案 0 :(得分:6)

.group(0)是整场比赛。使用.group(1)获取所需括号中的部分。

import re
string = re.search("\[tag\](.*?)\[tag\]", "[tag]string[tag]")
print string.group(1) # prints 'string'

答案 1 :(得分:2)

group(0)是整场比赛。你想要group(1)

http://ideone.com/Q9sUt

答案 2 :(得分:1)

您还可以使用正向前瞻/后视:

import re
text = """
          [tag]string[tag]
          [tag]string1[tag]
          [tag]string2[tag]
          [tag]string3[tag]
          [tag]string4[tag]
"""
print re.findall(r'(?i)(?<=\[tag\])\w*(?=\[tag\])', text)