다음 스크립트 코드를 고려하십시오. import scala.util.matching.Regex
val VIRAMA = "्"
val consonantNonVowelPattern = s"(म|त|य)([^$VIRAMA])".r
// val consonantNonVowelPattern = s"(थ|ठ|छ|स|ब|घ|ण|ट|ज|ग|न|ष|भ|ळ|ढ|ख|श|प|ह|ध|ङ|म|झ|ड|ल|व|र|फ|क|द|च|ञ|त|य)([^$VIRAMA])".r
var output = "असय रामः "
output = consonantNonVowelPattern.replaceAllIn(output, _ match {
case consonantNonVowelPattern(consonant, followingCharacter) =>
consonant + VIRAMA + "a" + followingCharacter
})
println("After virAma addition: " + output.mkString("-"))
다음과 같은 올바른 출력을 생성합니다. After virAma addition: अ-स-य-्-a- -र-ा-म-्-a-ः-
그러나 더 긴 패턴 (위에 주석 처리됨)을 사용하면 다음과 같은 잘못된 출력이 표시됩니다. After virAma addition: अ-स-्-a-य- -र-्-a-ा-म-्-a-ः-
이것은 버그입니까? 내가 뭘 잘못하고 있니?
아래는 Lalit Pant 덕분입니다.
두 번째 경우의 올바른 출력은 다음과 같다고 가정합니다. अ-स-्- a- य-्- a- -र-्- a- ा-म-्- a- ः-
그렇다면 계속 읽으십시오. 그렇지 않은 경우 예상 출력을 알려주십시오.
문제는 더 큰 'consonantNonVowelPattern'의 경우 '출력'에 'सय'가 있으면 'स'자음 뒤에 패턴 일치에서 'य'가 'followingCharacter'로 표시된다는 것입니다. 결과적으로 'य'는 자음으로보고되지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다