Regex 获取空白值或-+;要在正则表达式中显示的数字$value

Regex 获取空白值或-+;要在正则表达式中显示的数字$value,regex,vb.net,Regex,Vb.net,我试图从上面的正则表达式行中提取所有需要的数据。使用VB.net,我有前5件事,但一旦需要一个-/+$数字,有时显示为无字符,我就卡住了 到目前为止,这是可行的 MsgType=GetMarketAuction&Symbol=XLF&AuctionPrice=24.50&AuctionSize=57138&AuctionImbalance=0&AuctionImbalanceMkt=0&AuctionIndNetChange=&Closin

我试图从上面的正则表达式行中提取所有需要的数据。使用VB.net,我有前5件事,但一旦需要一个-/+$数字,有时显示为无字符,我就卡住了

到目前为止,这是可行的

MsgType=GetMarketAuction&Symbol=XLF&AuctionPrice=24.50&AuctionSize=57138&AuctionImbalance=0&AuctionImbalanceMkt=0&AuctionIndNetChange=&ClosingPrice=24.54&BidPrice=24.36&AskPrice=24.37&EC=0&ES=&AuctionImbalanceStatus=&AuctionMktImbalanceStatus=&Delta=
Dim r As New System.Text.regular expressions.Regex(“Symbol=(?。.w+)\&AuctionPrice=(?。.d.\d+)\&AuctionSize=(?。.d+)\&AuctionImbalance=(?.a*)\&AuctionImbalanceMkt=(?.a*))
AuctionIndNetChange=(我在这里寻找可以从中提取价值的东西)


谢谢

您可以使用以下正则表达式:

Dim r As New System.Text.RegularExpressions.Regex("Symbol=(?<1>.\w+)\&AuctionPrice=(?<2>.\d.\d+)\&AuctionSize=(?<3>.\d+)\&AuctionImbalance=(?<4>.a*)\&AuctionImbalanceMkt=(?<5>.a*)")
输出:

Dim querystr As String = "MsgType=GetMarketAuction&Symbol=XLF&AuctionPrice=24.50&AuctionSize=57138&AuctionImbalance=0&AuctionImbalanceMkt=0&AuctionIndNetChange=&ClosingPrice=24.54&BidPrice=24.36&AskPrice=24.37&EC=0&ES=&AuctionImbalanceStatus=&AuctionMktImbalanceStatus=&Delta="
        Dim qscoll As System.Collections.Specialized.NameValueCollection = HttpUtility.ParseQueryString(querystr)
        Console.WriteLine(String.Format("AuctionSize: {0}, Symbol: {1}, AuctionPrice: {2}, AuctionSize: {3}, AuctionImbalance: {4}, AuctionImbalanceMkt: {5}, AuctionIndNetChange: {6}",
        qscoll("AuctionSize"), _
        qscoll("Symbol"), _
        qscoll("AuctionPrice"), _
        qscoll("AuctionSize"), _
        qscoll("AuctionImbalance"), _
        qscoll("AuctionImbalanceMkt"), _
        qscoll("AuctionIndNetChange")))

您可以使用以下正则表达式:

Dim r As New System.Text.RegularExpressions.Regex("Symbol=(?<1>.\w+)\&AuctionPrice=(?<2>.\d.\d+)\&AuctionSize=(?<3>.\d+)\&AuctionImbalance=(?<4>.a*)\&AuctionImbalanceMkt=(?<5>.a*)")
输出:

Dim querystr As String = "MsgType=GetMarketAuction&Symbol=XLF&AuctionPrice=24.50&AuctionSize=57138&AuctionImbalance=0&AuctionImbalanceMkt=0&AuctionIndNetChange=&ClosingPrice=24.54&BidPrice=24.36&AskPrice=24.37&EC=0&ES=&AuctionImbalanceStatus=&AuctionMktImbalanceStatus=&Delta="
        Dim qscoll As System.Collections.Specialized.NameValueCollection = HttpUtility.ParseQueryString(querystr)
        Console.WriteLine(String.Format("AuctionSize: {0}, Symbol: {1}, AuctionPrice: {2}, AuctionSize: {3}, AuctionImbalance: {4}, AuctionImbalanceMkt: {5}, AuctionIndNetChange: {6}",
        qscoll("AuctionSize"), _
        qscoll("Symbol"), _
        qscoll("AuctionPrice"), _
        qscoll("AuctionSize"), _
        qscoll("AuctionImbalance"), _
        qscoll("AuctionImbalanceMkt"), _
        qscoll("AuctionIndNetChange")))