我需要一些帮助来编写正则表达式,从URL中提取少量字符串(比如说2个字段)。
我真的想在这里说不从字符串中提取网址。
让我说我的网址是这样的:
http:// example.com/conversion/?param1=dhkw121?param2=dhja143&uuid=jsbdwbjb-fwjdbw-wdvvw-wj
或者URL类型可以是这样的:
http:// example.com/conversion/param1=dhkw121%uuid=dbjbjbcs-fbsj-fsjbjs-fsj /param2=dhja143
从上面的网址中,我必须分别提取param1
和param2
个值,分别为2和字符串。
我尝试在PHP中使用正则表达式阅读一些内容,但似乎它不仅仅是常规正则表达式,它更多地包含在后引用和东西中。
这就是我尝试的,像这样:
.*(param1\=.*param2\=.*)\&?.*
我对这种复杂的提取是全新的,有人可以帮助我吗?
答案 0 :(得分:2)
看起来这些参数只是字母数字。如果是这样,我建议使用preg_match_all
:
preg_match_all("/param[12]=(\w+)/", $url, $results);
或者如果你想将它们作为元素1和2从数组中获取:
preg_match_all("/param1=(\w+).*?param2=(\w+)/", $url, $results);
答案 1 :(得分:0)
试试这个:
param1=([^&]+).*param2=([^&]+)
param1值将在第1组中,而param2值在grpup 2中。
答案 2 :(得分:0)