Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用于分离HTML GET参数的正则表达式_Regex_String_Pcre_String Matching - Fatal编程技术网

Regex 用于分离HTML GET参数的正则表达式

Regex 用于分离HTML GET参数的正则表达式,regex,string,pcre,string-matching,Regex,String,Pcre,String Matching,如何使用正则表达式分离URI中的GET参数并提取某个参数?具体地说,我正试图获取YouTube watch URI的v=部分。我想出了youtube.com\/watch\?(\w+=[\w-]+&?*(v=[\w-]+)&*(\w+=[\w-]+&?*),但这看起来非常重复。有没有更好(更短?)的方法可以做到这一点?一个简化的正则表达式: ^(?)http://www.)youtube.[^/]+?/观看(.?)(v=([^&]+)()$ 我知道有很多类似的问题,但没有一个完全符合我的要求。我

如何使用正则表达式分离URI中的
GET
参数并提取某个参数?具体地说,我正试图获取YouTube watch URI的
v=
部分。我想出了
youtube.com\/watch\?(\w+=[\w-]+&?*(v=[\w-]+)&*(\w+=[\w-]+&?*
),但这看起来非常重复。有没有更好(更短?)的方法可以做到这一点?

一个简化的正则表达式:

^(?)http://www.)youtube.[^/]+?/观看(.?)(v=([^&]+)()$


我知道有很多类似的问题,但没有一个完全符合我的要求。我正在寻找一种能够只提取视频ID的东西,不管它是参数列表中的第一个、最后一个还是隐藏在其他ID之间。我所看到的一切都没有像那样奏效

作为参考,我将用于测试,这组测试URI:

http://www.youtube.com/watch?v=XXXXXXXXXXX
http://www.youtube.com/watch?v=XXXXXXXXXXX&feature=results_video&playnext=1&list=XXXXXXXXXXXXXXXXXX
http://www.youtube.com/watch?feature=player_embedded&v=XXXXXXXXXXX#!
http://www.youtube.com/watch?annotation_id=annotation_xxxxxx&feature=iv&src_vid=XXXXXXXXXXX&v=XXXXXXXXXX

各位堆栈交换者,我建议使用以下正则表达式来解决这个问题:
youtube.com\/watch\?(\S*)v=([\w-]+)

“页面参数”-我不确定这些参数的名称。我认为它们被称为POST参数,或者可以合理地称为它。@Martinshaiters修复。非常感谢。实际上,url中的参数是
GET
参数。如果您提交表单,则生成的请求很可能包含您输入的
POST
参数。顺便说一下,正式名称为。你不必再编辑了-我相信每个人都能理解它
:)