正規表現

メールアドレスの正規表現 clippy 0.6.1公開しました

先日来ご無沙汰だったclippyのソースをメンテしているわけですが、十一月にはいって立て続けにRegexKitLiteがアップデートされたのでアップデートして周辺のソースを眺めていたら恥ずかしいバグを発見しました。メールアドレスの判定の正規表現がもうダメすぎる。自分用の*@xxx.comアドレスしかマッチしません。*@xxx.co.jpとかはヒットしません。あまりの手抜き正規表現になんでこんな風になっているのか自分でも理解できません。

NSPredicateの正規表現

NSPredicateでは正規表現もサポートしていて単にマッチングだけを目的とするのであれば、RegexKiOgreKitを導入する必要はありません。例えばURLマッチングであれば、

NSPredicate* reg = [NSPredicate predicateWithFormat:
  @"SELF MATCHES 'https?://[a-zA-Z0-9/.?_+~=%:;!#-]+'"];
if ([reg evaluateWithObject:source])
  {
     :
   }
コンテンツの配信