今日から始める正規表現(応用編)
2022/12/16
応用編
今回は問題形式で書くので考えてみてください!
第1問
まずおさらいとして、次の正規表現が何を表すものか考えてみてください。
[0-9]{3}-[0-9]{4}-[0-9]{4}
答えは、電話番号です!
解説
0-9の数字が3桁、ハイフン、0-9の数字が4桁、ハイフン、0-9の数字が3桁
というものを表しています。
第2問
[A-Za-z0-9\-_]+@+[A-Za-z0-9\-_]+\.[A-Za-z]
答えは、メールアドレスです!
解説
メールアドレスに関しては使用出来る文字が多い、形式が多い、サイトによって使用出来る文字が違うなどがあり
1つの正規表現ではカバーしきれないのですが
ここではシンプルな英文字、数字、ハイフン、アンダーバーのメールアドレスを想定しています。
分解して解説すると
[A-Za-z0-9\-_]+
アルファベット数字ハイフンアンダーバーが1文字以上
ハイフンはエスケープ処理(頭に\をつける)をしています。
@
アットマーク
[A-Za-z0-9\-_]+
ここは上と同じで、@マークの後ろのドメインの部分です。
\.[A-Za-z]
そして最後にドットが来て、その後に国を表すドメイン部分(.jp、.com等)
使える文字はアルファベットのみです。
第3問
https?://[A-Za-z0-9!?/+\-_~;.,*&@#$%()'[\]]+
答えはURLです!
解説
こちらも見た目がかなりややこしいので分解して解説します。
https?://
これはURLのhttps://の部分ですね。
?の意味は直前の文字が合ってもなくても良いという事です。
つまり
https://
と
http://
の両方をカバーしています。
[A-Za-z0-9!?/+\-_~;.,*&@#$%()'[\]]+
前後の[]と+は[]内の文字が1文字以上という意味です。
とてもややこしく見えますが[]内に使用してよい文字(と記号)が羅列されているだけです。
使用してよい文字
A-Za-z0-9 英数字
! びっくりマーク
? はてなマーク
/ スラッシュ
+ プラス
\- ハイフン(エスケープ処理)
_ アンダーバー
~ チルダ
; セミコロン
. ドット
, カンマ
* アスタリスク
& アンド
@ アットマーク
# シャープ
$ ドル
% パーセント
( 丸括弧(左)
) 丸括弧(右)
' アポストロフィー
[ 角括弧(左)
\] 角括弧(右)(エスケープ処理)
これだけの文字、記号を想定し、繋げて書くと上のようになります。
まとめ
今回はかなり難しい正規表現を紹介しました!
ここに載せたような正規表現が理解出来れば、十分実用的なレベルだと思います。
個人的に正規表現の一番難しいところは
特殊な表現をしているのか、記号の羅列をしているのかぱっと見区別がつかないところかなと思います。
URLの正規表現などは特にそうですが、表現としてはシンプルでも記号を羅列すると難しく見えますよね。
僕自信も正規表現をさらに学び、効率的に仕事をこなせるように頑張っていきたいと思います!
----------------------------------------------------------------------
株式会社AQUARIZE
〒531-0072
大阪市北区豊崎3-6-8 TOビル404
電話番号 : 06-7777-2927
税理士の業務に合ったシステム
税理士の方の作業を効率化
----------------------------------------------------------------------