嗚呼、正規表現
正規表現が苦手だ。というか、苦手だといえるほど使ってもいないのだが、今後はなにか新しいことを覚えたらここにメモっていこうと思う。では、第一回。
例:以下の文字列から hogehoge のみを取り出すにはどう書いたらよいか? ただし hogehoge を直接指定する以外のやり方が望ましい。
<a href="https://google.com">hogehoge</a>
回答:<と>で囲まれている2箇所のみを削除できればよいので、この箇所を特定するような正規表現を考える。任意の文字の繰り返しは.+
なので、
<.+>
がよさそうだが、これは最長マッチなので、この場合だと行頭の<と行末の>に囲まれた部分、すなわち文字列すべてにマッチしてしまう。2箇所それぞれを削除するには最短マッチにせねばならず、そのためには?を追記する必要がある。すなわち
<.+?>
これが正解。
不安なら正規表現チェッカーで確かめよう。