[英]Regex URL with query parameters from unbroken string in .Net 5
我收到編碼的二進制數組,我將其解碼以顯示被無關字符包圍的 url:
\\0\\0\\0\\\0\\0\\0,\\0,models.attaches.AttachImage\\0\\0\\0u\\0\\0\\0\\\0\\0\\0\\0\@ K \( \( \\0\\0\vt \`\\0\\0\\0!\\0!models.ImageList\\0\\0\\0\\\0\\0\\ 0\\\0\\0\\0K\\0\\0\\0*\\0\\0\\0 \\0 https://subhost.host.com/img/del-tay-6t1/d71zhsu.jpg?size= 75x42&quality=96&sign=124sa\\0\\0\\0\\\0\\0\\0 \\0\\0\\0I\\0\\0\\0 \\0 https://subhost.host.com/img/del- tay-6t1/d71zhsu.jpg?size=80x60&quality=120&sign=124sa\\0\\0\\0\\\0\\0\\\\\0\\0\R\\0\\0\\0 \\0 https:// subhost.host.com/img/del-tay-6t1/d71zhsu.jpg?size=140x90&quality=128&sign=124sa\\0\\0\\0\\\0\\0\'\\0\\0\ \\0\\ 0\\0 \\0 https://subhost.host.com/img/del-tay-6t1/d71zhsu.jpg?size=400x600&quality=256&sign=124sa\\0\\0\\0\\\0\\0\ \\0\\0\\0\ \\0\\0\\0 \\0 https://subhost.host.com/img/del-tay-6t1/d71zhsu.jpg?size=16x30&quality=16&sign=124sa\ \\0\\0\\0!\\0!models.ImageList\\0\\0\\0\\0@\ \\0\\0\\0\ \\0\p\\0\\0\\0\ \\0\\0\\0\\0\\0\\0\\0\\0\\0\\\0\8fe364cc35ce4a8407 \。
我的目標是獲取這些帶有查詢參數的 URL,如下所示:
https://subhost.host.com/img/del-tay-6t1/d71zhsu.jpg?size=80x60&quality=120&sign=124sa
我正在使用正則表達式
https?:.*?jpg.*?(?=\\)
這適用於像http://regexstorm.net/這樣的在線測試人員,但在實際的 C# .Net 5 正則表達式匹配返回
我不太確定為什么
在這種情況下,URL 不僅以jpg
結尾,而且一直到第一個控制字符或字符串結尾。
您可以在 .NET 正則表達式中將控制字符以外的任何字符與\\P{Cc}
匹配。
因此,解決方案可以是
https?:.*?\.jpg\P{Cc}*
或者,如果兩個 URL 可能相互粘連,您可以使用
https?:(?:(?!https?://).)*?\.jpg(?:(?!https?://)\P{Cc})*
請參閱此正則表達式演示。
細節
https?:
- http:
或https:
(?:(?!https?://).)*?
- 除換行符以外的任何字符,0 次或更多次,但盡可能少,不以https://
或http://
序列開頭\\.jpg
- .jpg
字符串(?:(?!https?://)\\P{Cc})*
- 除控制字符外的任何字符,0 次或多次,但盡可能少,不以https://
或http://
開頭http://
序列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.