3

私は正規表現を介してURLパラメータを抽出しようとしていますが、それを機能させることに非常に近づいています。私は問題が何であるかさえ知っています: 私の正規表現は繰り返されるキャプチャグループにつまずいています. しかし、私は単にそれを修正する方法を理解できません。

言語はPHPです。

私の URL は以下のようなものです。パラメータを持たず、1 つまたは複数だけ持つことができます。

member.php?action=bla&arg=2&test=15&schedule=16

私の正規表現は次のようになります。

member\.php((?:[\?|&](\w*)=(\w*))*)

そして、私のキャプチャグループは次のようになります。

1. action=bla&arg=2&test=15&schedule=16
2. schedule
3. 16

すべてのパラメータを個別にキャプチャする方法がわかりません。最初の捕獲グループに落ち着いて、自分で爆破する必要がありますか? 1 つの正規表現内ですべての作業を行うことができれば、私の目的にとってははるかに洗練されたものになります。

4

3 に答える 3

10
try:
<?php
$str="member.php?action=bla&arg=2&test=15&schedule=16#test";
preg_match_all('/([^?&=#]+)=([^&#]*)/',$str,$m);
print_r($m);

//combine the keys and values onto an assoc array
$data=array_combine( $m[1], $m[2]);
print_r($data);
?>
于 2011-10-14T04:20:06.480 に答える
5

あなたは試しましたparse_urlparse_str

于 2011-10-14T04:24:08.197 に答える
0

パラメータとその値を抽出->&[\w]*=[\d]*

于 2011-10-14T03:11:44.753 に答える