簡體   English   中英

帶有來自 .Net 5 中完整字符串的查詢參數的正則表達式 URL

[英]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 正則表達式匹配返回

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\

我不太確定為什么

在這種情況下,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM