0

私は正規表現を使用して、テキスト内の多音節語の数を見つけようとしています。私のコードはほとんどの場合機能しますが、いくつかの多音節語を取得しません:

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")
}

多音節語の数を数えます。

私の思考プロセスは、(修飾された) 単語内の任意の 3 つの母音を空白以外で区切って見つけ、多音節単語の数を得るというものです。

4

1 に答える 1

1

\S は のような句読点にも一致することに注意してください。と 、そしてそれが誤検出の原因になる可能性があります。例えば:

'ame.na mana miu' //'ame.na' will be treated like one word with your regexp

より良い結果を得るために、\S を \w に置き換えることができます。もちろん、\w には数字も含まれます。本当に正確にしたい場合は、[az] を使用できます。また、/g スイッチを使用しています。/i を追加して、AEIOUY も検索できるようにする必要があります。

/...regexp.../gi 

詳細については、javascriptkit.com/javatutors/redev2.shtml をご覧ください。

于 2013-01-23T09:11:05.767 に答える