簡體   English   中英

為什么這個正則表達式在我的 vb.net 代碼中不起作用?

[英]Why this regex doesn't work in my vb.net code?

我有一些奇怪的問題要處理。 我使用這個網站https://regex101.com/來測試我的結果字符串。 我需要在訪問者訪問我的網站時獲取訪問者用戶代理字符串,然后我創建小應用程序來完成我的 vb.net 代碼。

它抓取的html代碼是這樣的:

<body>
<p id="ip">ip: 77.111.247.210</p>
<p id="host">host: 77.111.247.210.dynamic.orange.fr</p>
<p id="port">port: 18516</p>
<p id="ua">ua: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36</p>
<p id="lang">lang: en-US,en;q=0.9</p>
<p id="mime">mime: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3</p>
<p id="encoding">encoding: gzip, deflate</p>

我使用的模式是這樣的: (?<=ua:)([^0-9a-zA-Z].+)(?=<)它適用於正則表達式測試儀網站,但在我嘗試的 vb.net 代碼中不返回任何東西。

 Dim r3 As Regex = New Regex("(?<=ua:)([^0-9a-zA-Z].+)(?=<)")
 Dim m3 = r3.Match(source)
 _ua = m3.Value

我可以提取所有參數,但用戶代理 'ua:' 是不可能的。 我剛剛編輯了這個,我已經測試添加到我的 WebRequest useragent但我輸入了: the_request.UserAgent = "default"然后猜猜是什么..? 它有效但是然后我提取的不是正確的用戶代理而是請求用戶代理“默認”大聲笑如何解決它?

感謝幫助。

我剛剛發現用 webrequest 檢查用戶代理是不可能的,除非我們不在請求中使用用戶代理。 所以這就是為什么我在沒有用戶代理的情況下使用請求時沒有得到任何字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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