hiyoko-programingの日記

プログラミングを勉強したてのひよっ子。   エンジニア目指して勉強中。

Ruby の正規表現

正規表現をModelsに書くことになったが、

暗号にしか見えない。

 

'アイウエオ' =~ /\A[\p{katakana}]+\z/ #=> 0
'あいうえお' =~ /\A[\p{katakana}]+\z/ #=> nil
'アイウエオあいうえお' =~ /\A[\p{katakana}]+\z/ #=> nil
'イロハニホヘトチリヌルヲ' =~ /\A[\p{katakana}]+\z/ #=> 0
'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス' =~ /\A[\p{katakana}]+\z/ #=> 0
'イロハニホヘトチリヌルヲワカヨタレソツネナラム' =~ /\A[\p{katakana}]+\z/ #=> 0

なんのこっちゃ???

と定義を調べていくと、以下のような決まりのようだ。


30A1..30FA ; Katakana # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
30FD..30FE ; Katakana # Lm [2] KATAKANA ITERATION MARK..KATAKANA VOICED ITERATION MARK
30FF ; Katakana # Lo KATAKANA DIGRAPH KOTO
31F0..31FF ; Katakana # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
32D0..32FE ; Katakana # So [47] CIRCLED KATAKANA A..CIRCLED KATAKANA WO
3300..3357 ; Katakana # So [88] SQUARE APAATO..SQUARE WATTO
FF66..FF6F ; Katakana # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
1B000 ; Katakana # Lo KATAKANA LETTER ARCHAIC E

# Total code points: 300

 

◉30A1..30FA, 30FD..30FE, 30FFとは?

 

◉32D0..32FE

○付きのカタカナ

 

◉FF66..FF6F, FF71..FF9D

 

半角カタカナ

 

都度調べて書くしかなさそうだ。