.netの正規表現

 「\d」を使うと,[0-9]に比べて,ほんの少しですが簡潔な表現ができます。ただし,VB 2005では\dがいわゆる全角の数字にもマッチしてしまうので注意が必要です(図6)。半角数字に限定したいときは,VB 2005では[0-9]を使います。

第7回 VBでも正規表現!

\d が全角の数字にもマッチしてしまうなんて信じられない。驚き最大の法則です。

「詳説 正規表現」で、.net の正規表現はなかなかの対応状況である、と読んだ気がしたのですが。。。

設計者は、親切のつもりだったんだろうか。キモい仕様です。

追記

もうすこし検索してみたら、アラビア数字にもヒットするらしいです。

٠ ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩←これらにマッチ

アラビア数字にもヒットしてしまうので、”[0-9]”と書く必要があります。

正規表現によるパターン・マッチ

UnicodeCategory 列挙体のDecimalDigitNumberにヒットする物ということのようです。

http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpref/html/frlrfsystemglobalizationunicodecategoryclasstopic.asp

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください