【问题标题】:Remove whitespace from number within text in VB.NET从 VB.NET 文本中的数字中删除空格
【发布时间】:2009-04-29 02:50:48
【问题描述】:

我有这种格式的文字

"term: 156^^^:^^59 数据输入" 或 "term: 156^^^:59 数据输入" 或 "term: 156:^^^59"

“^”代表空白。 注意两个数字和冒号之间的空格。两个数字之间有 2、3、4 甚至 7 个空格。我想删除这些空白,以便文本可以采用这种格式:

“术语:156:59 数据输入”

这两个数字之间不再有空格 -> 156:56。我只想删除数字和冒号之间的空格。

感谢您的任何意见。

【问题讨论】:

    标签: .net vb.net


    【解决方案1】:

    试试下面的

    Dim result = Regex.Replace(input, "(\d)\s*:\s*(\d)", "$1:$2")
    

    这使用正则表达式来匹配数字和冒号之间的空格。像这样的任何模式都将被最后一个参数替换。 $1 和 $2 是转义序列,表示“用第一个和第二个括号匹配的文本替换”。在这种情况下,它将是一个数字。

    【讨论】:

    • @Jose,直到你必须在你写之前维护一个 4 行的正则表达式;)
    • 经常有一个开发者有问题,认为“我知道,我会用正则表达式”,现在他有两个问题......
    • @balabaster,绝对正确。不幸的是,大多数人没有意识到正则表达式的继承限制,因此试图将它们用于他们无法解决的问题。结果浪费了很多时间。 QA 喜欢这个,因为它不可避免地会导致一个错误农场:)
    【解决方案2】:

    我认为正则表达式将有助于处理不同数量的空白字符。

        Dim text As String = "term: 156      :     59 datainput "
        text = Regex.Replace(text, "([0-9])\s*:\s*([0-9])", "$1:$2", RegexOptions.Singleline)
    

    【讨论】:

    • 不同的正则表达式。结果相同。 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 2017-02-20
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多