搜索字符串并从字符串中提取大小或数量值

时间:2011-09-15 19:09:13

标签: .net regex vb.net

我正在尝试从数据库中的所有产品的标题中自动提取所有大小和数量。所以我需要提取一些文本之前的大小或数量。

例如在以下字符串中我需要提取案例数(1000)。

  

“Micromesh II活组织检查处理/嵌入盒式磁带,4室,   白色 - 1000 /案例“

我需要一种在字符串中搜索字符串“/ Case”然后提取前4个字符的方法。我正在寻找使用子字符串并删除最后5个字符,但我的数据库中的一些描述是不同的,我不能这样做。

这可能在VB.NET吗?

5 个答案:

答案 0 :(得分:2)

请看LastIndexOf

这将为您提供与Substring一起使用的位置。

未经测试:

myString = myString.Substring(myString.LastIndexOf("/Case") - 4, 4)

答案 1 :(得分:1)

使用正则表达式。它会更快地工作

答案 2 :(得分:1)

这应该可以帮助您入门。不要'真的知道你的分隔符是什么。只是数字来自/.

Dim s As String = "Micromesh II Biopsy Processing/Embedding Cassettes, 4 Compartment, White - 1000/Case"
Dim idxSlash As Integer = s.LastIndexOf("/")
Dim idxStart As Integer = idxSlash - 1
While Char.IsDigit(s(idxStart))
  idxStart -= 1
End While
Dim result As String = s.Substring(idxStart, idxSlash - idxStart)

答案 3 :(得分:1)

首先找出产品名称的常见模式。然后编写一个可以找到所有目标的正则表达式。然后你可以在vb.net或c#中使用Regex类和Match方法来提取它们。它认为正则表达式是这样做的最佳选择。

答案 4 :(得分:0)

@ Oded是好的,但如果数字不是4位数则会中断。所以:

    ' Works as long as number is preceded by space and followed by /
    s.Substring(0, s.LastIndexOf("/")).Substring(s.LastIndexOf(" "))
相关问题