🦔

[Bug #20617] 正規表現のアラビア語の Unicode プロパティに関するバグ報告

2024/07/08に公開

[Bug #20617] /\pArabic/ character property doesn't match certain Arabic characters

  • 正規表現の Unicode プロパティの \p{Arabic} が一部のアラビア文字にマッチしていないというバグ報告
str = "شغل مرحلة أولى ، جداً؟"

# \p{Arabic} にマッチしない文字がいくつか存在する
# スペース, カンマ, クエッション, fatahan
p str.chars.reject {|char| /\p{Arabic}/.match(char)}.uniq
# => [" ", "،", "ً", "؟"]
  • これは Arabic というプロパティは 用字(scripts) を対象としており 一般句読点(Punction) は含まれないのでこういう挙動になるらしい
  • 両方とも含めるようにする場合は ブロック(block) を参照する In_Arabic を利用することができるらしい
str = "شغل مرحلة أولى ، جداً؟"

# スペースだけ該当しない
p str.chars.reject {|char| /\p{In_Arabic}/.match(char)}.uniq
# => [" "]
/\p{In_Arabic}|\p{In_Arabic_Extended_A}|\p{In_Arabic_Extended_B}|\p{In_Arabic_Extended_C}|\p{In_Arabic_Mathematical_Alphabetic_Symbols}|\p{In_Arabic_Presentation_Forms_A}|\p{In_Arabic_Presentation_Forms_B}|\p{In_Arabic_Supplement}/
  • Unicode むずかしい…
GitHubで編集を提案

Discussion