Foxtable(狐表)用户栏目专家坐堂 → 用正则表达式提取内容


  共有2971人关注过本帖树形打印复制链接

主题:用正则表达式提取内容

帅哥哟,离线,有人找我吗?
sunnyfastener
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:109 积分:1482 威望:0 精华:0 注册:2016/5/15 8:59:00
用正则表达式提取内容  发帖心情 Post By:2018/7/27 23:11:00 [只看该作者]

对国家标准的描述,用正则表达式来拆分,、
如:GB/T901-2010
想分别提取GB、/T、901、2010四部分
1、第一部份"GB",都是字母组成
2、第二部份"/T",是固定格式,有些客户会简写成T,变成GBT
3、第三部份是标准号,则数字或数字带点组成,如901.1
4、第四部份是年份号,有时年份号也会简写,如2010写成10

向各位高手求助




 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/28 9:14:00 [只看该作者]

Dim s As String="GB/T901-2010"
Dim p2 As String = "(/T)|(T)|(-)"
Dim r As New System.Text.RegularExpressions.Regex(p2)
Dim str = r.Split(s)
For Each a As String In str
    Output.Show(a)
Next
[此贴子已经被作者于2018/7/28 9:13:57编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
sunnyfastener
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:109 积分:1482 威望:0 精华:0 注册:2016/5/15 8:59:00
  发帖心情 Post By:2018/7/28 11:29:00 [只看该作者]

谢谢!!@有点蓝
但我想用matchs的方式,这样可能更灵活点
我尝试着写:
dim pattern as string = "([A-Z]+)/?(T?)(\d+)-?(\d{2-4})?"
这什么都匹配不到

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110744 积分:563646 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/7/28 11:34:00 [只看该作者]

如果要分割,只能是Split

 回到顶部