как мне преобразовать специальную переменную Perl $ 1 в Python?

Я хочу преобразовать хеш, содержащий хеши в perl, в python. вот фрагмент его кода на Perl:

our %types = (
  string => {
    db_type     => 'string',
    hint        => 'string',
    pattern     => qr|^(.+)$|,
    format      => q( $1 )
  },
  boolean => {
    db_type     => 'boolean',
    hint        => 'yes|no',
    pattern     => qr|^([yn])|i,
    check       => q( $1 ),
    format      => q( ($1 =~ /^y/) ? 'yes' : 'no' )
  }
)

вот как я написал это на Python:

types = [
    'string': {
        'db_type': 'string',
        'hint': 'string',
        'pattern': re.compile(r'^(.+)$'),
        # 'format':,
    },
    'boolean': {
        'db_type': 'boolean',
        'hint': 'yes|no',
        'pattern': re.compile(r'^([yn])', re.IGNORECASE),
        #'check': HOW SHOULD I TRANSFORM THIS PART?,
        #'format': HOW SHOULD I TRANSFORM THIS PART?,
    },
]

Я не знаю, как мне преобразовать значения ключей формата и проверки. любая помощь прилагается.

1 ответ

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

Нужно переписать весь механизм, но что-то вроде .group(1) за $1 а также

"yes" if object.group(1) == "y" else "no" 

за

($1 =~ /^y/) ? 'yes' : 'no'

должен делать свою работу.

Другие вопросы по тегам