Я пытаюсь найти все строки формата {{rdex|001|001|Bulbasaur|2|Grass|Poison}}
в большом текстовом файле, а затем извлечь подстроки, соответствующие первым 001
и Bulbasaur
, возможно, как кортеж.
Я предполагаю, что регулярное выражение с группами захвата может использоваться для обоих; может ли кто-нибудь сказать мне соответствующее регулярное выражение для использования в Python 3.1, а также возможный код? Я regex noob.
Спасибо!
import re
text="""{{rdex|001|001|Bulbasaur|2|Grass|Poison}}"""
re.findall("\{\{[^|]+\|(\d+)\|\d+\|([^|]+)",text)
[('001', 'Bulbasaur')]
re.match('^{{[^|]+\|([^|]+)\|[^|]+\|([^|]+)\|[^|]+\|[^|]+\|[^|]+\}}$', S).groups()
line="{{rdex|001|001|Bulbasaur|2|Grass|Poison}}"
s=line.find("{{")
e=line.find("}}")
if s != -1 and e != -1:
sub=line[s+2:e].split("|")
print sub[1],sub[3]
Выход
$ ./python.py
001 Bulbasaur