2013-12-06 6 views
1

У меня возникли проблемы с тем, чтобы заставить операторов-операторов работать в модуле regex (regex 2013-11-29) в python-3.x. Например, чтобы соответствовать ASCII символы минус знаки препинания я пытался:Использование операторов set с модулем regex python

import regex as rx 

data = '(foo)' 
for m in rx.finditer(r'[\p{ASCII}--\p{P}]+',data): 
    print(m.group(0))  # expect 'foo', getting '(foo)' 

Документация дает этот пример:

[\ р {N} - [0-9]] # Набор содержит все номера, кроме '0' .. '9'

Я что-то упустил?

ответ

1

Похоже, вам нужно явно указать на поведение версии 1, чтобы - интерпретировался как оператор набора, а не как символы для включения в класс.

От module web page:

Версия 1 поведение (новое поведение, отличное от текущего модуля повторно ):

На экране отображается version1 или флаг V1, или в шаблоне (V1?) ,

.split разделит строку на соответствие нулевой ширине.

Внутренние флаги применяются к концу группы или рисунка, и они могут быть выключены.

Поддерживаются вложенные наборы и операции с множеством.

Совместимые с регистром символы в Юникоде используют по умолчанию полную фальцовку.

Если версия не указана, модуль regex по умолчанию будет равен regex.DEFAULT_VERSION. В краткосрочной перспективе это будет VERSION0, но в в долгосрочной перспективе это будет VERSION1.

+0

Это работает, спасибо :) – ethann

Смежные вопросы