Изменение регулярного выражения в Python

Хотя я не вижу в этом особого regular-expressions смысла, но вот что:

import re
import string

def traverse(tree):
    retval = ''
    for node in tree:
        if node[0] == 'any':
            retval += 'x'
        elif node[0] == 'at':
            pass
        elif node[0] in ['min_repeat', 'max_repeat']:
            retval += traverse(node[1][2]) * node[1][0]
        elif node[0] == 'in':
            if node[1][0][0] == 'negate':
                letters = list(string.ascii_letters)
                for part in node[1][1:]:
                    if part[0] == 'literal':
                        letters.remove(chr(part[1]))
                    else:
                        for letter in range(part[1][0], part[1][1]+1):
                            letters.remove(chr(letter))
                retval += letters[0]
            else:
                if node[1][0][0] == 'range':
                    retval += chr(node[1][0][1][0])
                else:
                    retval += chr(node[1][0][1])
        elif node[0] == 'not_literal':
            if node[1] == 120:
                retval += 'y'
            else:
                retval += 'x'
        elif node[0] == 'branch':
            retval += traverse(node[1][1][0])
        elif node[0] == 'subpattern':
            retval += traverse(node[1][1])
        elif node[0] == 'literal':
            retval += chr(node[1])
    return retval

print traverse(re.sre_parse.parse(regex).data)

Я взял regular-expressions все, от Regular Expression Syntax до групп - это кажется regexp разумным подмножеством - и regular-expressions проигнорировал некоторые pythonista детали, такие как окончания pythonic строк. Обработка ошибок и regex-php т. Д. Оставлена ​​читателю regex-php в качестве упражнения.

Из python-interpreter 12 специальных символов в perl-regex регулярном выражении мы можем regular-expressions полностью игнорировать 6 regex (2 даже с атомом, к которому regexp они применяются), 4,5 приводят python к тривиальной замене, а 1,5 python заставляют нас задуматься.

Я python-interpreter думаю, что из этого не так regex-php уж и интересно.

python

regex

2022-11-09T22:04:36+00:00
Вопросы с похожей тематикой, как у вопроса:

Изменение регулярного выражения в Python