【问题标题】:how to extract values from a string in vb.net?如何从 vb.net 中的字符串中提取值?
【发布时间】:2013-10-30 01:18:44
【问题描述】:

我有这个字符串“Raw: 463 -22 -17Raw: 463 -22 -17Raw:”,但我只想得到“463 -22 -17”等,基本上只是数值。我如何从字符串中提取它?顺便说一句,第一个数字和第二个数字之间有3个空格,第二个和第三个数字也是如此。但是,第三个和下一个数字之间没有空格。这种模式不断重复。请帮我。 提前致谢 干杯!

【问题讨论】:

  • 你能告诉我们一些你的代码吗?您可以进行正则表达式匹配或一系列子字符串和替换。
  • 你可以使用sting分割功能...

标签: .net vb.net string


【解决方案1】:

您可以使用 REPLACE。

     Dim x As String = "Raw: 463 -22 -17Raw: 463 -22 -17Raw:"
     x = Replace(x, "Raw: ", " ") '<-I added an empty space as replacement, but you can use whatever you like.
     MsgBox(x)

【讨论】:

    【解决方案2】:

    试试这个:

    Dim values = text.Split( _
        New String() { "Raw:" }, _
        StringSplitOptions.RemoveEmptyEntries)
    

    从您的示例数据中可以得到:

    如果您想将所有值作为整数取出,您可以这样做:

    Dim values = _
        From numbers in text.Split( _
            New String() { "Raw:" }, _
            StringSplitOptions.RemoveEmptyEntries) _
        Select numbers.Split( _
            New Char() { " "c }, _
            StringSplitOptions.RemoveEmptyEntries) _
                .Select(Function (x) Integer.Parse(x))
    

    这给了你:

    【讨论】:

    • 为什么是New String() { "Raw:" } 而不仅仅是"Raw:"
    • @RBarryYoung - 没有需要字符串的重载。
    • 对,我忘了 .Net String.Split(..) 版本有多乱。 VB内置的Split(..)函数没有这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    相关资源
    最近更新 更多