Ханука Регекс - PullRequest
       15

Ханука Регекс

15 голосов
/ 23 декабря 2008

Ханнука, Ханука, Ханука ... Благодаря транслитерации с другого языка и набора символов существует много способов написания названия этого праздника. Сколько законных написаний вы можете придумать?

Теперь напишите регулярное выражение, которое распознает их все.

Ответы [ 7 ]

13 голосов
/ 23 декабря 2008

Согласно http://www.holidays.net/chanukah/spelling.htm, его можно записать любым из следующих способов:

Chanuka
Chanukah
Chanukkah
Channukah
Hanukah
Hannukah
Hanukkah
Hanuka
Hanukka
Hanaka
Haneka
Hanika
Khanukkah

Вот мое регулярное выражение, которое соответствует всем им:

/(Ch|H|Kh)ann?[aeiu]kk?ah?/

Редактировать: Или это без веток:

/[CHK]h?ann?[aeiu]kk?ah?/
3 голосов
/ 23 декабря 2008

Назовите меня присоской для удобства чтения.

В Python:

def find_hanukkah(s):
   import re

   spellings = ['hannukah', 'channukah', 'hanukkah'] # etc...

   for m in re.finditer('|'.join(spellings), s, re.I):
      print m.group()



find_hanukkah("Hannukah Channukah, Hanukkah")
2 голосов
/ 25 декабря 2008

к счастью, я понимаю иврит - *וכה

1 голос
/ 25 декабря 2008

Что-то вроде C? Hann? Uk? Kah? соответствует большинству общих случаев. Там также есть куча странных написаний C? Hann? Uk? Kah? | Han [aei] ka | Ханука соответствует почти каждому написанному мною написанному (у которого было по крайней мере полмиллиона просмотров в Google).

1 голос
/ 23 декабря 2008

/ ^ [ск]? Hann? УКК? А? $ / Я

0 голосов
/ 23 декабря 2008

Мне нравится ответ Триптиха, но я бы сделал еще один шаг вперед ... также в python:

def valid(spelling):
    import re

    regex_spelling = re.compile(r'^[cCkK]{0,1}han{1,2}uk{1,2}ah$')
    valid = regex_spelling.match(spelling)

    if valid:
        print 'Valid spelling'
    else:
        print spelling, " is not a spelling for the word"

чтобы использовать его:

valid("hanukkah")
0 голосов
/ 23 декабря 2008

Я думаю, что единственное одобренное написание на английском языке это Ханука и Хануха, так что это что-то вроде

/(Ch|H)anuk?kah/

Или, может быть, даже лучше

/(Chanukah|Hanukkah)/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...