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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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 搜索标题的正则表达式_Regex_Search_Clojure - Fatal编程技术网

Regex 搜索标题的正则表达式

Regex 搜索标题的正则表达式,regex,search,clojure,Regex,Search,Clojure,我正在寻找使用正则表达式来挑选雅虎搜索。也就是说,我在Yahoo上搜索了Clojure tutorial,希望在其中捕获Clojure tutorial这个词 https://search.yahoo.com/search;_ylt=ApnVZAn6KsJdNlo0rRPgg4qbvZx4?p=clojure+tutorial&toggle=1&cop=mss&ei=UTF-8&fr=yfp-t-176 我相信函数re-find将帮助我选择目标,但我不确定如何制定正则表达式。问题在于,搜索结果并

我正在寻找使用正则表达式来挑选雅虎搜索。也就是说,我在Yahoo上搜索了
Clojure tutorial
,希望在其中捕获Clojure tutorial这个词

https://search.yahoo.com/search;_ylt=ApnVZAn6KsJdNlo0rRPgg4qbvZx4?p=clojure+tutorial&toggle=1&cop=mss&ei=UTF-8&fr=yfp-t-176

我相信函数re-find将帮助我选择目标,但我不确定如何制定正则表达式。问题在于,搜索结果并不总是位于?p=和与符号之间

例如,搜索
clojure教程pdf

https://search.yahoo.com/search;_ylt=A0LEVzoK3gtTQWAA.K5XNyoA_2.2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 Nazyeb3jpz2LUA3NLYXJJAC55YWHVBY5JB20ECG9ZAZEECHFZDHIDY2XVANVYZSB0DxRvCbCbCbCbCbCbHzZDzHzHzHzSazHzAzHzHzSazHzAzHzHzHzHzHzHzHzHzHzHzHzAzHzHzAzHzHzHzHzAzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzHzH

它捕获了搜索&p=和一个符号&

总之,我正在寻找一个正则表达式,它捕获可以获取所有字符值的搜索,并且可以在[?&]p=…&]之间找到

(?:\?|\&)p=(.+?)\&
自由空间:

(?:\?|\&)   //A literal question mark OR ampersand
p=          //Followed by "p="
(.+?)       //Followed by at-least one of [anything but an ampersand]
\&          //Followed by an ampersand.
捕获组$1包含搜索词

+?
是非贪婪的,因此它将上升到下一个符号AND。如果您将其更改为
+
——这不是您想要做的——它将贪婪地通过字符串中的最后一个符号捕获所有内容

一个可行的替代方案是:

(?:\?|\&)p=([^&]+)