2013-01-22 2 views
0

regexp를 사용하여 텍스트에서 polysyllabic 단어의 수를 찾으려고 할 때, 제 코드는 대부분 작동하지만 일부 폴리 단어는 인식하지 않습니다.정규식을 사용하여 polysyllabic 단어를 찾습니다.

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 개의 모음을 찾을 것입니다,

+2

\ 또한 S 통지하십시오 구두점을'.' 및','와 일치 시키면 오 검출의 원인이 될 수 있습니다. 더 나은 결과를 얻으려면 \ w를 \ w로 바꿀 수 있습니다. 물론 \ w에도 숫자가 포함될 것이고, 정말로 정확하고 싶다면 [a-z]를 사용할 수 있습니다. 또한/g 스위치를 사용하고 있습니다./i를 추가하여/너무 많이 검색하므로 /...regexp.../gi – AlexStack

+0

괜찮습니다. 도움이 될 것입니다! 나는 [az]와 gi를 둘 다 사용하겠습니다. – ECH

+0

도 [az]가 여러 번 발생할 수 있다는 것을 알고 있습니다. (실제로는 [^ laeiouy]를 넣을 것입니다.) – ECH

답변

1

\는 문장 부호와 일치 S 통지하시기 바랍니다 나에게 다음 절의 단어의 수를 제공합니다 처럼 . 그리고 이것은 오 탐지의 원인이 될 수 있습니다. 예 :

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

더 나은 결과를 얻으려면 \ S를 \ w로 바꿀 수 있습니다. 물론 \ w에도 숫자가 포함될 것이고, 정말로 정확하고 싶다면 [a-z]를 사용할 수 있습니다. 또한/g 스위치를 사용하고 있습니다. 너무 AEIOUY 검색 있도록이

/...regexp.../gi 

될 것입니다, 그래서 당신은 당신은 여기에서 자세히 알아볼 수 있습니다 여기에/I를 추가해야합니다 javascriptkit.com/javatutors/redev2.shtml

관련 문제