Мне нужно найти шаблоны, которые могут иметь много метасимволов. В настоящее время я использую длинное регулярное выражение.Escape все метасимволы в Python
prodObjMatcher=re.compile(r"""^(?P<nodeName>[\w\/\:\[\]\<\>\@\$]+)""", re.S|re.M|re.I|re.X)
(мой фактический шаблон очень долго, так что я просто вставил некоторую соответствующую часть, на которой мне нужна помощь)
Это особенно больно, когда мне нужно написать сочетания таких моделей в одной повторной компиляции.
Существует ли путинский способ сокращения длины шаблона?
Зачем использовать '. *?' В конце, если он соответствует пустой строке? Кроме того, вам не нужно * всегда избегать каких-либо символов в классе символов, кроме сокращенных классов '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '. Есть способы сохранить даже те (за исключением '' \ ''), не сохраненные в классе символов. –
В дополнение к комментариям это пахнет работой для 'xml' ** parsing ** (имя узла ???). – Jan
@ WiktorStribiżew *** мой фактический шаблон очень длинный, поэтому я просто вставил какую-то соответствующую часть, на которой мне нужна помощь ***. Было бы здорово получить ответ на то, что было задано. Я еще не специалист по регулярному выражению в python, поэтому обычно избегаю метасимволов. Вероятно, со временем научится выходить, а что нет. –