在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  HTML/ 匹配url的正則表達(dá)式問(wèn)題

匹配url的正則表達(dá)式問(wèn)題

如下正則表達(dá)式居然能成功配置url中的key,(^|)的意思不是開(kāi)始或空嗎,怎么能匹配&呢,是哪里理解錯(cuò)了呢?
正則

(^|)rsv_bp=([^&]*)(|$)

url字符串

?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F&rsv_pq=eeeb21a20001f388&rsv_t=4ba6XCweLIFwqACbIt7eT8yuqYQfNU7ZJNTlLenvEtVVFm4jVEnL5O48Ze0&rqlang=cn&rsv_enter=1&rsv_sug3=6&rsv_sug1=6&rsv_sug7=100

正則能匹配到rsv_bp=0

回答
編輯回答
小眼睛
(^|)的意思不是開(kāi)始或空嗎,怎么能匹配&呢,是哪里理解錯(cuò)了

(^|)等于是廢話,去掉無(wú)妨,因?yàn)?code>(^|)匹配行首或任意一個(gè)位置,任意一個(gè)位置包括了行首,也沒(méi)有意義,所以去掉無(wú)妨。如圖:

clipboard.png

2017年2月19日 01:44
編輯回答
神曲

(^|) 這個(gè)理解是錯(cuò)誤的

/(^|)aaa/.test('sfdsfaaa')
true
/(^|||||)aaa/.test('sfdsfaaa')
true

這個(gè) 意思是 開(kāi)頭 或者 什么都不匹配 | 和這個(gè) ||||| 意思相同
你若是想要匹配空格是這樣的

/^|\s/
2018年3月6日 11:52
編輯回答
伴謊

這里寫(xiě)法是(^|),看起來(lái)可能有些詭異,給你換一個(gè)寫(xiě)法也許你就明白了:

/(^)?rsv_bp=([^&]*)($)?/

當(dāng)然這個(gè)寫(xiě)法其實(shí)是有問(wèn)題的,如果在字符串中還存在一個(gè)1rsv_bp=233,如果這個(gè)串在rsv_bp=0的前邊,那么匹配其實(shí)是錯(cuò)誤的,所以更完善的寫(xiě)法應(yīng)該是:

/(?<=(^|&))rsv_bp=([^&]*?)(?=(&|$))/
2018年8月11日 21:41