Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 搜索字符串并从字符串中提取大小或数量值_.net_Regex_Vb.net - Fatal编程技术网

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

.net 搜索字符串并从字符串中提取大小或数量值,.net,regex,vb.net,.net,Regex,Vb.net,我正在尝试自动提取数据库中我所有产品标题的所有大小和数量。所以我需要提取文本前面的大小或数量 例如,在下面的字符串中,我需要提取案例数(1000) “Micromesh II活检处理/嵌入盒,4室, 白色-1000/箱“ 我需要一种方法在字符串中搜索字符串“/Case”,然后提取前面的4个字符。我正在考虑使用子字符串并删除最后5个字符,但我的数据库中的一些描述不同,我不能这样做 这在VB.NET中是否可能 看看 这将为您提供需要与子字符串一起使用的位置 未测试: myString = myStr

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

例如,在下面的字符串中,我需要提取案例数(1000)

“Micromesh II活检处理/嵌入盒,4室, 白色-1000/箱“

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

这在VB.NET中是否可能

看看

这将为您提供需要与
子字符串一起使用的位置

未测试:

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

使用正则表达式。它将运行得更快

这将有助于您开始工作。不知道你的定界是什么。只是数字在/之前

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)

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

@Oded's很好,但如果数字不是4位,则会中断。因此:

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

有1000个案例,而不是100:-):-)我希望你的代码能更准确地提取:-):-):-)a/是否总是表示前面有数字?为什么不应该找到“4隔间”中的4隔间?这是几乎所有程序员的一项基本技能:您喜欢在数据库端或VB.NET中完成这一切吗?还有,你的数据库引擎是什么?我没有偏好,如果我可以在数据库中使用SQL来实现,那会更容易。我正在使用sql server2008@Oded-我知道手动编写完美的正则表达式很难,因此我经常使用Expresso之类的表达式工具