我正在尝试使用regexp来查找一段文本中的多音节单词的数量,我的代码大部分时间都可以工作,但不能识别一些多音节单词:
polySyllableCount = lWords2.replace(/(?:[^laeiouy\s]es|ed|[^laeiouy\s]e)$/, '');
是我用来计算音节的,还有
polySyllableCount = lWords2.replace(/^y/, '');
替换前导Y,这样它们就不会被计算在内,
最后:
try
{
polySyllables = polySyllableCount.match(/[aeiouy]\S[aeiouy]\S[aeiouy]/g).length;
}
catch(err)
{
console.log("No Poly Words")
}
统计复音词的数量。
发布于 2013-01-23 17:11:06
请注意,\S也与标点符号匹配,如。而且,这可能是一些误检的原因。例如:
'ame.na mana miu' //'ame.na' will be treated like one word with your regexp
您可以将\S替换为\w以获得更好的结果。当然,\w也会包括数字,如果你想要真正准确,你可以使用a-z。此外,您还使用了/g开关。您需要将/i添加到其中,以便它也搜索AEIOUY,因此它将
/...regexp.../gi
您可以在这里了解更多信息: javascriptkit.com/javatutors/redev2.shtml
https://stackoverflow.com/questions/14460614
复制相似问题