URLを正規表現で記述する際の、正規表現のデリミタで悩んでいます。
今日まではエスケープの手間がはぶける{}
を用いるのがいいと考えていました。
しかしダブルクオートで変数を展開しようとして気が付いたのですが{}
をデリミタに用いると以下2つ目がおかしなことになってしまいます。
PHP
1$site_host = "example.com"; 2"{https?://$site_host/.+}" 3"{$site_host/page/[0-9]+?q=data}"
これは下記のようにすれば済む話ですが、せっかくダブルクオートで展開できる利点がなくなってしまいます。
php
1"{" . $site_host . "/page/[0-9]+?q=data}"
そこで質問ですが、URLを囲む際のデリミタとしてベストなものはなにがよろしいでしょうか?
話を整理しますと、
■//
をデリミタに使うと、URLで使われる/
をエスケープしないといけない
■$$
をデリミタに使うと、正規表現で使われる$
をエスケープしないといけない
■{}
をデリミタに使うと、変数の展開で困る
という状況です。
良いのがございましたら宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/02 06:15
2020/08/02 06:41
2020/08/02 08:56