Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]关于正则表达式提取多组数据?

1楼
zto001 发表于:2024/11/22 16:58:00
[求助]关于正则表达式提取多组数据?
我又多个正则表达式,需要提取多组匹配的上的数据要怎么写代码

比如正则表达式为: JT\d{5} 、 9\d(7)、  10\d{3}
有一个字符串里有多个可以满足上面的表达式,我需要全部提取出来
2楼
有点蓝 发表于:2024/11/22 17:42:00
dim 正则表达式 as string = "[JT\d{5}|9\d(7)|10\d{3}]"
3楼
zto001 发表于:2024/11/22 18:35:00
Dim s As String = e.Form.Controls("XZ_工单诉求").text
Dim p As String = "[JT\d{13}|777\{13}|773\{13}|9\d{12}]"
Dim rgx = New System.Text.RegularExpressions.Regex(p, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
For Each match As System.Text.RegularExpressions.Match In rgx.Matches(s)
    Output.Show(match.Value)
'为啥提取出来的是一个一个字,不是整段的
Next
4楼
有点蓝 发表于:2024/11/23 9:10:00
Dim s As String = e.Form.Controls("XZ_工单诉求").text
Dim p As String = "[^JT\d{13}|777\{13}|773\{13}|9\d{12}]"
Dim str = System.Text.RegularExpressions.Regex.Replace(s, p, "")
Output.Show(str)
5楼
zto001 发表于:2024/11/24 13:32:00
Dim 数 As Integer
Dim s As String = "773323782297528核重0.28kg,单包100g,顾客买了16包,只收到了两包,已重新补发"
Dim p As String = "[^JT\d{13}|777\{13}|773\{13}|9\d{12}]"
Dim str = System.Text.RegularExpressions.Regex.Replace(s, p, "|")
Output.Show(str)
Dim Values() As String
Values = str.split("|")
For Index As Integer = 0 To Values.Length - 1
    Output.Show(Values(Index))
Next

为啥会匹配到   |0|28|||||100||||||16||||||||||||||      这些数字?
我只用匹配773323782297528|就行了
6楼
有点蓝 发表于:2024/11/24 20:09:00
Dim s As String = "777323782297528核重0.28kg,单包100g,顾客773323782297528核重0买了16包,只收到了两包,已重新补发"
Dim p As String = "(777\d{12})|(773\d{12})"
Dim m As String
Dim rgx = New System.Text.RegularExpressions.Regex(p, System.Text.RegularExpressions.RegexOptions.IgnoreCase)
For Each match As System.Text.RegularExpressions.Match In rgx.Matches(s)
    Output.Show(match.Value)
Next
7楼
zto001 发表于:2024/11/29 11:27:00

77726254933004 地址不对 

77022028646147 揽收未发出 核实有无发出记录 需拦截请告知

77642469315623 非我司
77726227589187
77726227284092
77726227002822  
77726227211195
77726227963980 非我司
777262069163325 朱玉芳[9749]

如果我想把上面的字段分出来做到表里或者json里。
 "(777\d{11})|(776\d{11})|(770\d{11})"
我用这个分出单号出来,然后怎么做到每个单号另一项值对应后面的文字?如果是绿色字体,又怎么能让后面没字的对应下面后面有字的内容?

8楼
有点蓝 发表于:2024/11/29 11:46:00
原始数据是怎么样的?最终要什么效果,截图说明
9楼
y2287958 发表于:2024/11/29 11:51:00
Dim s As String = "77022028646147 揽收未发出 核实有无发出记录 需拦截请告知"
Output.Show(Regex.Match(s, "^77[760]\d{11}").Value)
Output.Show(Regex.Replace(s, "^77[760]\d{11}", ""))
[此贴子已经被作者于2024/11/29 12:37:52编辑过]
共9 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.