「*」アスタリスクと聞くと、オールマイティ感を感じる、正規表現的な脳みそになっている、ユゲタです。
本日のIT謎掛け
「ハイフン」と、かけまして、
「心拍数の安静値」と、ときます。
そのココロは・・・
ダッシュするとマイナスになっちゃうよ。
ハイフンの種類の多さにビックリ
パソコンで「-」(マイナス)キーを全角モードで押すと、変換候補がたくさんリスト表示される時に、なんだかたくさんの「-」が存在する事に気がついた人もいると思います。
入りきっていないものも合わせて書き出すと、以下のような感じ。
1. ー : 長音
2. ➖ : 絵文字 (ハイフンじゃない)
3. 〰 : [全]絵文字 (ハイフンじゃない)
4. - : [半]ハイフン マイナス
5. − : [全]ハイフン マイナス
6. 〜 : [全]波ダッシュ (ハイフンじゃない)
7. ~ : [半]波ダッシュ (ハイフンじゃない)
8. ― : [全]ダッシュ
9. ‐ : [全]ハイフン
10. ー : [全]
11. - : [半]
12. − : [全]
13. ー : [半]カタカナ
macで表示しているので、見ているOSによっては、文字化けをしているものもあると思います。
中にはハイフンじゃないものもありますが、どうやら、ハイフン、ダッシュ、マイナス・・・と、名称がいくつかあることに気がつく。
もちろん文字コードも違うようだ。(コードはasciiコードと16進数)
[ ー : 12540 , 0x30FC] 長音
[ - : 45 , 0x2D] [半]ハイフン マイナス
[ − : 8722 , 0x2212] [全]ハイフン マイナス
[ ― : 8213 , 0x2015] [全]ダッシュ
[ ‐ : 8208 , 0x2010] [全]ハイフン
[ ー : 12540 , 0x30FC] [全]
[ - : 45 , 0x2D] [半]
[ − : 8722 , 0x2212] [全]
[ ー : 65392 , 0xFF70] [半]カタカナ
下方にある、[半]と[全]は、それぞれ「ハイフン、マイナス」と同じことがわかるが、それ以外はバラバラだ。
半角カタカナと半角ハイフンの違いは、mac端末で見る限り、人の目で判断できるレベルではない。
システムエンジニアが遭遇するかもしれないハイフン・トラブル
おそらく、文章などで文字入力をする場合など、半角か全角かぐらいを気にすればいいかと思いますが、
システムに登録する文字列には、気を使わなくてはいけません。
例えば、ECサイトなどで、ユーザーの郵便番号や電話番号を登録させる時に、000-0000や03-0000-0000という風に書いた時にハイフンは、
通常のエンジニアであれば、半角ハイフンであると信じて疑わないでしょうが、利用するユーザーがハイフンをどの文字コードのモノに変換してくるかは、正直不明です。
実際に、スマホサイトなどでやってみると、半角全角だけでなく、アンダースコア「_」などを入力するツワモノもいて、市外局番などに分解しようとする作業をかんがえると、なんとも、エンジニア泣かせの仕様です。
まあまあ使える正規表現サンプル
郵便番号
/([0-90-9]{3}).*?([0-90-9]{4})/
電話番号
/([0-90-9]{2,4}).*?([0-90-9]{2,4}).*?([0-90-9]{2,4})/
javascriptのコードを使った正規表現サンプル
"0ー1-2−3―4‐5ー6ー7".match(/(\u30FC).*?(\x2D).*?(\u2212).*?(\u2015).*?(\u2010).*?(\u30FC).*?(\uFF70)/)
```
0: "ー1-2−3―4‐5ー6ー"
1: "ー"
2: "-"
3: "−"
4: "―"
5: "‐"
6: "ー"
7: "ー"
```
無事に全部ひっかかりました。
半角文字は"x"で、全角文字は"u"を頭につけている点に注意してね。
0 件のコメント:
コメントを投稿