как мне преобразовать специальную переменную 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'
должен делать свою работу.