none
請教使用正規表示截取字串的寫法 RRS feed

  • 問題

  • 今天我有一組字串如下

    Dim str As String = "VA(11),VA(),VA(33),VA(44),VA(55),VA(66),VA(77)"

    我想要取出VA()裡面有內容的字串組,並且想要把內容擷取下來

    所以我的正規表示規則如下

    Dim re As Regex = New Regex("VA\((.+)\)")

    使用了 re.Matches 得到了6個比對成功的集合

    但是把集合內的內容輸出之後

    發現第二個的內容為 VA(),VA(33)

    我知道這是因為規則內的 .+ 做出來的結果,這是正常的

    請問如果我只想要 VA(33) 這樣的內容我應該要如何改善正規表示的規則呢???


    2013年10月8日 上午 10:38

解答

  • \(?[^\)]+\)

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2013年10月8日 上午 11:35

所有回覆

  • \(?[^\)]+\)

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2013年10月8日 上午 11:35
  • \(?[^\)]+\)

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    感謝您提供的辦法

    不過這寫法會把VA()也一起截取出來

    我把它改成

    Dim re As Regex = New Regex("VA\(([^)^\s]+)\)")

    真是慚愧!!居然沒有想到這麼基礎的辦法..

    謝謝您!!

    2013年10月8日 下午 01:33