0

PHP コード (preg_replace) で正規表現操作を実行しようとしています。今私は働いています:

|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i

これはhttp://google.comなどの URL に一致しますが、一致させたい URL がこのようなものである場合はどうなるでしょうか。

http:\/\/asd.domain.com\/path\/of\/url\/something.else

2x のバックスラッシュと 4x のバックスラッシュを試してみましたが、うまくいかないようです。

何かアドバイス?

前もって感謝します。

4

1 に答える 1

0

単純に文字列を一致させたい場合は、バックスラッシュをいくつか追加します。

^http(s)?:\\?/\\?/[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(\\?/.*)?$

量指定子を使用して、?その前に一致できた URL と一致するようにしました。はエスケープ文字であるため\、そのうちの 2 つが必要です。最初の文字は、2 番目の文字のエスケープ プロパティをエスケープします\

デモを参照してください(正規表現テスターの仕組みのため、スラッシュのみをエスケープしました-区切り文字はスラッシュです)。

于 2013-07-07T16:16:04.533 に答える