以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于正则表达式提取多组数据? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194257) |
-- 作者:zto001 -- 发布时间:2024/11/22 16:58:00 -- [求助]关于正则表达式提取多组数据? [求助]关于正则表达式提取多组数据? 我又多个正则表达式,需要提取多组匹配的上的数据要怎么写代码 比如正则表达式为: JT\\d{5} 、 9\\d(7)、 10\\d{3} 有一个字符串里有多个可以满足上面的表达式,我需要全部提取出来
|
-- 作者:有点蓝 -- 发布时间:2024/11/22 17:42:00 -- dim 正则表达式 as string = "[JT\\d{5}|9\\d(7)|10\\d{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
|
-- 作者:有点蓝 -- 发布时间: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)
|
-- 作者: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|就行了
|
-- 作者:有点蓝 -- 发布时间: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
|
-- 作者: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})" 我用这个分出单号出来,然后怎么做到每个单号另一项值对应后面的文字?如果是绿色字体,又怎么能让后面没字的对应下面后面有字的内容? |
-- 作者:有点蓝 -- 发布时间:2024/11/29 11:46:00 -- 原始数据是怎么样的?最终要什么效果,截图说明 |
-- 作者: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编辑过]
|