搜索标题的正则表达式

时间:2014-02-25 00:10:59

标签: regex search clojure

我希望使用正则表达式来挑选雅虎搜索。也就是说,我搜索了雅虎Clojure tutorial并希望在

中捕获Clojure教程这个词。

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

我相信重新找到的功能会帮助我挑选出我的目标,但我不确定如何制定正则表达式。问题是搜索结果并不总是位于?p =和&符号之间。

例如,搜索clojure tutorial pdf会产生

https://search.yahoo.com/search;_ylt=A0LEVzoK3gtTQWAA.K5XNyoA;_ylc=X1MDMjc2NjY3OQRfcgMyBGJjawMybDF2MXIxOWZha3VrJTI2YiUzRDQlMjZkJTNESnhYQjdIWnBZRUlva3dIRTNTMVJCTEJ0S28wMm96NDdCUjhoMmctLSUyNnMlM0Q5diUyNmklM0QxYU1hS3RnWlpHUFQySEo3MmNOdgRmcgN5ZnAtdC0xNzYEZ3ByaWQDTmlXZ0V1ZC5RY2VRaDQ5cUxrWEJLQQRtdGVzdGlkA0FEU1JQJTNEU01FMzMwJTI2QVNTVCUzRFFJMDM4JTI2VUkwMSUzRFZJUDMyMyUyNlVOSSUzRFJDRjA0MwRuX3JzbHQDMTAEbl9zdWdnAzYEb3JpZ2luA3NlYXJjaC55YWhvby5jb20EcG9zAzEEcHFzdHIDY2xvanVyZSB0dXRvcmlhbCAEcHFzdHJsAzE3BHFzdHJsAzIwBHF1ZXJ5A2Nsb2p1cmUgdHV0b3JpYWwgcGRmBHRfc3RtcAMxMzkzMjg2ODE2MzY2BHZ0ZXN0aWQDVklQMzIz?gprid=NiWgEud.QceQh49qLkXBKA&pvid=fgnc0Tk4LjEqh.HYUvVT1Ad6MjQuNlML3gr_66io&p=clojure+tutorial+pdf&fr2=sa-gp&fr=yfp-t-176

陷阱搜索& p =和&符号&amp ;.

总之,我正在寻找一个正则表达式,它捕获可以获取所有字符值的搜索,并且可以在[? &安培; P = ...&安培;

1 个答案:

答案 0 :(得分:1)

(?:\?|\&)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包含搜索词

.+?非贪婪,因此会转到 next &符号。如果您将其更改为.+ - 这不是您想要做的 - 那将是贪婪的并通过字符串中的 last &符捕获所有内容。

可行的替代方案是:

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