是否可以通过正则表达式检查一个单词是否真的是英语单词



当我说英语时,我的意思是vs gobbledy gook。我不是想过滤掉maitre'd或西班牙语或其他任何东西。

所以基本上我试图测试一个单词是否完全由可发音的音节组成。

所以这将是一个正则表达式:

if re.match(r'^([^aeiouy]{1,3}[aeiouy]{1,3}[^aeiouy]{1,3}|[aeiouy]{1,3}[^aeiouy]{1,3})+
    print "gobbledy gook!!!"

它检查什么:C=辅音V=元音

CVC 或 VC 字符组。组的长度为 1-3 个字符

这有意义吗?,the_word)是 None:xCodexBlockxPlacexHolderx

它检查什么:C=辅音V=元音

CVC 或 VC 字符组。组的长度为 1-3 个字符

这有意义吗?

是和否。从某种意义上说,这是可能的;这些评论给出了微不足道(而且非常冗长和迟钝)的方式来做到这一点。但是,对于这项任务滥用正则表达式在任何意义上是否有用?没有。有效单词之间的差异太大了,即使你正在做的弱化验证也没有尝试处理像"rong"这样合理但错误的单词,也需要绝对不切实际的定制来完成这项工作。

这种问题就是为什么JWZ(Jamie Zawinski)说:

有些人在遇到问题时会想"我知道,我会使用正则表达式"。现在他们有两个问题。

相关内容

最新更新