найти строку внутри тега, не находя тег в python - PullRequest
1 голос
/ 14 июня 2011

У меня есть строка внутри тега, которую я хочу извлечь, не найдя тег тоже. Я попробовал:

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 ]

6 голосов
/ 14 июня 2011

.group(0) - это весь матч.Используйте .group(1), чтобы получить нужный раздел в скобках.

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

2 голосов
/ 14 июня 2011

group(0) - это весь матч.Вы хотите group(1).

http://ideone.com/Q9sUt

1 голос
/ 14 июня 2011

Вы также можете использовать позитивный взгляд / взгляд назад:

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)
...