1
http://mywebsite/index.aspx?db=DAYTON#id%3D7304%3Bpage%3D1%3Bview%3Dpages

http://mywebsite/#id%3D3D7304%3Bpage%3D1%3Bview%3Dpages

上記の2つのURLはまったく同じ場所にありますが、スタイルが異なります。どのスタイルのURLがスローされても一致する1行の式を書き出そうとしています。私は「mywebsite/」以降のすべてに主に焦点を当ててきました

どんな助けでも大歓迎です!

4

2 に答える 2

0

まず、URLをデコードして、作業を簡単にします。

http://mywebsite/index.aspx?db=DAYTON#id=7304;page=1;view=pages
http://mywebsite/#id=3D7304;page=1;view=pages

これで、それぞれに一致する2つの正規表現を記述し、それらをoperator(Demopathと組み合わせることができます。|

http://mywebsite/(index.aspx\?db=(\w+)#id=(\d+);page=(\d+);view=(\w+)|#id=3D7304;page=1;view=pages)

プログラミング言語でサポートされている場合は、名前付きグループを使用することもできます。


上記の正規表現は、引数の順序が変更された場合、URLと一致しないことに注意してください。

可能であれば、URLパーサーを使用することをお勧めします。

于 2013-03-05T17:32:12.183 に答える
0

これが重いワンライナー正規表現です:

^http:\/\/mywebsite\/(index\.aspx\?db=[A-Z]+)?#((id%\w+(%3B)?)|(view%\w+(%3B)?)|(page%\w+(%3B)?))*$

オプションindex.aspx?db=(大文字の値に設定)と、使用する3つの変数の任意の順序(、、および)を使用idviewてWebサイトを受け入れますpage

ここでカラフルな説明デモ:http://regex101.com/r/jB2jS3

于 2013-03-05T19:08:50.030 に答える