Создание списка списков с регулярными выражениями в python - PullRequest
0 голосов
/ 28 октября 2018

Я думал, что успешно создал и отфильтровал список списков, используя регулярные выражения в python. Однако, когда я пытаюсь проиндексировать списки, я просто индексирую первый элемент в каждом из списков. При ближайшем рассмотрении я заметил, что между списками нет запятых. Мне интересно, как я могу превратить каждый из этих отдельных списков в список списков?

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

import re



 list_of_strings = ['''<z><x><c></v></b></n>''',
 '''<paa>mnb<ore>mnbczx</bar><e>poiuy</e></paa>''',
 '''<paa><ore></lan></ore></paa>''',
 '''<paa><ore></ore></paa></paa>''',
 '''<paa><ore></paa></ore>''']
def valid_html(list_of_strings):
    matches = [[s] for s in list_of_strings]
    lst = []
    for item in matches:
        tagsRegex = re.compile(r'(<.{0,3}>|</.{0,3}>)')
        lst = (tagsRegex.findall(str(item)))
        find = re.compile(r'(<)|(>)')
        no_tags = [find.sub('', t) for t in lst]
        print(no_tags)
        print(no_tags[0])
valid_html(test_strings)

Мой вывод:

valid_html(test_strings)
['z', 'x', 'c', '/v', '/b', '/n']
z
['paa', 'ore', '/ore', 'e', '/e', '/paa']
paa
['paa', 'ore', '/lan', '/ore', '/paa']
paa
['paa', 'ore', '/ore', '/paa', '/paa']
paa
['paa', 'ore', '/paa', '/ore']
paa

Спасибо за ваше время!

1 Ответ

0 голосов
/ 28 октября 2018

Вы вставляете внутри цикла и печатаете внутри цикла.Вам нужно вывести за цикл for необходимость вернуть тот же

def valid_html(list_of_strings):
    matches = [[s] for s in list_of_strings]
    lst = []
    l=[]
    for item in matches:
        tagsRegex = re.compile(r'(<.{0,3}>|</.{0,3}>)')
        lst = (tagsRegex.findall(str(item)))
        find = re.compile(r'(<)|(>)')
        no_tags = [find.sub('', t) for t in lst]
        l.append(no_tags)
    return l
valid_html(list_of_strings)[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...