Некоторые человеческие языки отличаются морфологией досягаемости и развитой системой грамматических полов. Например, в славянских языках почти каждый прилагательное в одной грамматическом числе имеет три различных форм, в зависимости от количества родов (мужского, женственного и среднего рода):Regex: заменить подстроку на несколько форм слов
white <-> белый (m), белая (f), белое (n)
В некоторых случаях это было полезно получить список возможных форм слов при использовании регулярных выражений для замены подстроки.
Сейчас мне очень интересно, если Python (или любой другой язык сценариев) позволяет делать такие вещи, как ниже (ПРЕДУПРЕЖДЕНИЕ: фрагменты кода ниже является Python-как псевдокод, но не рабочий код Python) :
# I would like to handle russian genders like that:
>>> re.sub(r"Бел.", r"Бел[ый|ая|ое]", "Бел. Берель")
["Белый Берель", "Белая Берель", "Белое Берель"]
# A very artifical example for those who prefer latin:
>>> re.sub(r"Go.", r"Go[ld|lden]", "Go. Ochre")
["Gold Ochre", "Golden Ochre"]
Могу ли я использовать регулярные выражения для получения списка совпадающих комбинаций слов?
Был ли это рабочий код Python в вашем примере или только желаемый код? –
Вы можете использовать цикл, чтобы пройти через каждый пол, не так ли? – Jerry
Было бы намного проще получить представление о том, что вы хотите сопоставить, и о том, что вы хотите заменить, если вы используете '[a-zA-Z0-9]' вместо кириллицы. Даже если это не имеет никакого смысла - просто очень трудно «прочитать» это и увидеть различия. – xph