我有以下字串:
https://www.google.com/today/sunday/abcde2.hopeho.3345GETD?weatherType=RAOM&...
https://www.google.com/today/monday/jbkwe3.ho4eho.8495GETD?weatherType=WHTDSG&...
我想提取jbkwe3.ho4eho.8495GETD或abcde2.hopeho.3345GETD。{weekday}/和之間的任何東西?weatherType=。
我已經嘗試過,(?<=sunday\/)$.*?(?=\?weatherType=)但它只適用于第一行,我想讓它適用于所有字串,無論{weekday}.
我試過了,(?<=\/.*\/)$.*?(?=\?weatherType=)但沒有用。任何熟悉正則運算式的人都可以提供幫助嗎?謝謝!
[更新]我是正則運算式的新手,但我正在通過我認為應該是 PCRE 的“查找”功能在崇高的文本編輯器上對其進行試驗(根據這篇文章)
uj5u.com熱心網友回復:
試試這個正則運算式:
(?:sun|mon|tues|wednes|thurs|fri|satur)day\/\K[^?] (?=\?weatherType)
點擊演示
鏈接到代碼
解釋:
(?:sun|mon|tues|wednes|thurs|fri|satur)day- 匹配一周中的某一天,即,sunday,monday,tuesday,wednesday,thursday,friday,saturday\/- 火柴/\K- 取消匹配到目前為止已匹配的任何內容,并假裝匹配從當前位置開始。這可以用于 PCRE。[^?]- 匹配任何不是 a 的字符出現 1 次或多次?(?=\?weatherType)-上述子模式[^?]將匹配不是所有字符?,直到它到達其后面緊跟著的位置?,隨后weatherType
為了使比賽不區分大小寫的,你可以在前面加上正則運算式(?i)如圖所示這里
uj5u.com熱心網友回復:
在給出的示例中,您實際上只需要抓取最后一個正斜杠(“/”)和第一個問號(“?”)之間的字符。
您沒有提到您正在使用什么風格的正則運算式(即 PCRE、grep、Oracle 等),實際語法會有所不同,但一般來說,類似以下(Perl)替換正則運算式的東西會處理給出的例子:
s/.*\/([^?]*)\?.*/$1/gm
還有其他(和更有效)的方法,但這將完成這項作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/405584.html
標籤:
上一篇:如何將反向參考傳遞給函式
