0

なんらかの理由で、非常に基本的な正規表現を超えるものを作成するのにいつも行き詰まります。

URLのような正規表現を作成しようとしています。基本的なチェックのみが必要です。

Xが「何か」である次のパターンに一致させたいと思います。

X://X.X

X://X.X...

X.X

X.X...

文字列にこれらのパターンのいずれかが含まれていれば、それで十分なチェックです。このようにして、次のような URLwww.example.com:8888は引き続き一致します。私は多くの異なる REGEX の組み合わせを試しpreg_matchましたが、思い通りに動作するようには見えません。SOに関する他の多くの関連するREGEXの質問を調べましたが、私の読書は役に立ちませんでした。

何か助けはありますか?ご希望があれば、喜んでさらに情報を提供させていただきますが、他に何が必要かはわかりません。

4

2 に答える 2

1

練習が必要ですが、パターンをチェックするために正規表現テスター ( http://www.regextester.com/ ) を使用して作成したものを次に示します。

^.+(:\/\/|\.)([a-zA-Z0-9]+\.)+.+

私のアプローチは、最初からゆっくりとパターンを構築し、一度に 1 つずつ追加することです。このチートシートは、 http: //www.cheatography.com/davechild/cheat-sheets/regular-expressions/ を覚えておくのに非常に役立ちます。

基本的に、パターンは文字列の先頭から始まり、その後に :// または . 次に、文字と数字のグループ化とそれに続く . 任意の数の文字で終了します。

このパターンは、無効な文字を渡さないようにグループ化することでおそらく改善される可能性があります。しかし、これは速くて汚いものでした。.最初と最後を有効な文字に置き換えることができます。

アップデート

ここのコメントごとに更新されたパターンがあります:

^.+?(:\/\/|\.)?([a-zA-Z0-9]+?\.)+.+
于 2013-04-09T02:17:07.277 に答える