正規表現、知ってると便利・・・!
正規表現というものがあるらしく、先日初めて使ったのだけど、
いろんな場面で使っていけそうなので、先日使ったものを書きつつ、
今後、また使う事があったら都度更新していきたいと思います。
まず1つ目!
・「^」と「*」と「[]」を使った検索の仕方で、やりたかったことは、
下記コードの「name=””」の「””」の中の値を一気に変更したいっていうことでした。
1 |
'<td><input type="text" name="twitter_account" id="twitter_account" maxlength="30" value="' . $args['twitter_account'] . '"></td>'; |
そもそも正規表現の検索の仕方ですが、VSCodeの場合を紹介すると、
「Ctrl+F」で検索窓を表示して、検索窓にある、「.*」の所をクリックします。
ということで、早速、検索していきたいと思います。
「name=”」とその次の「”」の間の値が違うものを検索したかったので、
最初は、「name=”(.*)”」と入れて検索しました。
⇒「.*」で検索すると、それの前後の部分(今回で言うと””の間)がなんでも検索できる
すると、、、その行のもっと後ろの方にも「”」があったので、検索できたのは下記の部分…
「name=”twitter_account” id=”twitter_account” maxlength=”30″ value=”‘ . $args[‘twitter_account’] . ‘”」
その行の最後の「”」までが検索に引っかかりました…
ただ、ちゃんと最初の「”」までの部分を検索できる正規表現もあるのです!
「name=”([^”]*)”」
何が変わったかというと、「.」というなんでもいい文字を表していた部分を「[^”]」に変えてます。
それによって、「[]」で囲んだ値を含む部分の最初の(「^」が最初を表す)「”」を検索してくれるようになりました。
そして2つ目!
1つ目とあんまり変わらないけど、
検索したい文字自体に、検索する時に使う文字(メタ文字)が入っている場合。
そんな時は、「\(バックスラッシュ)」をその記号の前に入れることで、文字として扱う事が出来ます。
例えば「args[‘twitter_account’]」の「”」の間の値が違うものを検索したい場合は、
下記のように検索します。
「args\[‘([^’]*)’\]」
さっきと同様に同じ行に「’」があったので、最初の「’」までの間を検索するために
「^’」としており、今回は、検索するためではなく、
配列のための「[]」部分があったので、それを文字とするために、
\(バックスラッシュ)を文字として扱いたい文字の前に入れています。
いったん以上ですー。
また新しいの使ったら追記していきたいと思います。