Chanukah Regex

Chanukah Regex,regex,Regex,汉努卡,光明节,光明节…由于音译来自另一种语言和字符集,有很多方法来拼写这个节日的名称。你能想出多少合法的拼写 现在,编写一个正则表达式来识别它们。尝试以下操作: /^[ck]?hann?ukk?ah?$/i 我认为英语中唯一被认可的拼写是光明节和光明节,所以它有点像 /(Ch|H)anuk?kah/ 或者更好 /(Chanukah|Hanukkah)/ 说我是个容易读的傻瓜 在Python中: def find_hanukkah(s): import re spelli

汉努卡,光明节,光明节…由于音译来自另一种语言和字符集,有很多方法来拼写这个节日的名称。你能想出多少合法的拼写

现在,编写一个正则表达式来识别它们。

尝试以下操作:

  /^[ck]?hann?ukk?ah?$/i

我认为英语中唯一被认可的拼写是光明节和光明节,所以它有点像

/(Ch|H)anuk?kah/
或者更好

/(Chanukah|Hanukkah)/

说我是个容易读的傻瓜

在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")
根据,它可以用以下任一方式拼写:

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?/

我喜欢三联画的答案,但我会向前迈进一步。。。同样在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")

像C?hann?uk?kah?匹配大多数常见情况。此外还有一堆奇怪的拼写,C?汉娜?英国?英国?卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡卡哈还有一堆奇怪的拼写,还有一堆离奇的拼写,C?汉娜,C?汉娜,C?汉娜,英国,英国,英国,英国,英国,英国,还有一大堆,还有一堆,还有一堆,还有一堆,一堆,还有一堆,还有一堆,还有一堆,还有一堆,还有一堆,还有一堆,还有一堆,还有一堆,一堆,还有一堆,一堆,一堆,一堆,一堆,一堆,一堆,一堆,一堆,一堆,一堆,一堆,还有一堆,一堆,一堆,一堆,还有一堆,一堆,一堆,还有一堆,一堆,一堆,一堆,一堆,一堆,一堆,一堆,还有一堆,一堆,一堆,一堆,一堆,一个,一>

此正则表达式更具包容性,涵盖以下所有选项:

香努卡 香努加 香努卡 香努卡 查努卡 光明节 光明节 夏努卡 光明节 查努卡 花香 哈内卡 哈尼卡 汉努卡 光明节 汉努卡 汉努卡 哈努卡 光明节 光明节 光明节 光明节 亚努卡 卡努卡 萨努卡 Ханука Ханука חנוכה
不幸的是,它也匹配像Khannekkah这样的字符串。Reg EXP可能不是拼写检查器的最佳解决方案。是的,但是我认为在大多数情况下,与列表中不匹配的任何字符串只是单词的拼写错误(如果这个单词可以拼写错)。无论如何都应该匹配。我认为正则表达式应该只匹配它应该匹配的东西。我把它简单地当作一个谜。我更喜欢正则表达式。这类事情无法扩展。在某个时候,你必须分解并使用正则表达式!你的正则表达式仍然需要对所有公认的channukah拼写进行编码。我的版本明确了什么是可接受的输入,什么是不可接受的输入。另外,在我的代码中再添加一个拼写是微不足道的,但是一个正则表达式可能会因为一个额外的拼写而变得完全无效。类似的问题:可能有一个徽章,用于在关闭前让一个问题持续十二年。我错过了十二天@gbarry甚至不到12年,我已经看到六种常用用法。如果你想“正确”,你应该使用希伯来语字母“חנככ”当然,对于那些不懂希伯来语的人来说,这是一个不太有用的东西。Forward不是我最喜欢的犹太博客,但这是一篇关于拼写的非常有趣的文章:如果不是函数中的导入,我会对这个答案印象更深刻。。。