簡體   English   中英

正則表達式VB.net我應該分組嗎?

[英]Regex VB.net Should I Group?

我編寫了以下代碼,以減少每一行中的信息

s = Regex.Replace(s, "(a\/users\/\d*).*\(.*", "$1")

字符串如下所示:

/ a / users / 15 / badges?params%5Bnotifications%5D%5Bcount%5D = 5 HTTP / 1.1“ 200143” Mozilla / 5.0(兼容; MSIE 9.0; Windows NT 6.1; Trident / 5.0)

我試圖去

/ a / users / 15 /(兼容; MSIE 9.0; Windows NT 6.1; Trident / 5.0)”

我做錯了嗎? 如果有人可以提供幫助,我將不勝感激。


當我嘗試這個:

s = Regex.Replace(s,“(a / users / \\ d *)。 (\\ Blackberry。 )。*”,“ $ 1 $ 2”)'

對以下行進行排序

/a/users/80021/messages.json?params[page]=1&params[per_page]=10&params[set_actions]=true HTTP / 1.1“ 200 13063” BlackBerry9320 / 7.1.0.398配置文件/MIDP-2.1配置/CLDC-1.1 VendorID / 603 tibbr / 3.6.6.1“ 1/1574070

它不起作用,它似乎無法識別/ a / users / 80021之后的/

再次感謝您的幫助,即時消息非常好。

我也會看一下HttpUtility

您不應該逃脫斜線並匹配第三組:

(a/users/\d*/).\((.*)\).*

您還需要以.*結尾的正則表達式,以確保刪除了其余字符。

要么:

s = Regex.Replace(s, "(a/users/\d*/).*(\(.*\)).*", "$1 $2")

演示

但是正如@Cory所說:最好使用庫實現的算法,例如HttpUtility因為這些算法是按照所有規范設計的,並且不太可能包含錯誤。

編輯 :關於您的第二個正則表達式,有一個錯誤:

s = Regex.Replace(s, "(a\/users\/\d*).*(\Blackberry\.*).*","$1 $2")

您不會逃脫括號,但是B. ,正確的正則表達式可能是:

s = Regex.Replace(s, "(a\/users\/\d*/).*(Blackberry.*).*","$1 $2")

暫無
暫無

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

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