Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1306|回复: 7

[已解决]正则表达式摘取字符

[复制链接]
发表于 2021-10-5 22:23 | 显示全部楼层 |阅读模式
求高手帮忙
1   想把这个字符串  " 移动:宁波海曙丁家村南NR(new_5GY);[需求ID31712]" ,  移动:和NR间的字符提取出来 2   想把 这个字符串      "移动:宁波镇海宁大潘天寿艺术学院新大楼(移动5G二期新建二阶段 优先0715);[需求ID29020]" 中的  "宁波镇海宁大潘天寿艺术学院新大楼" 提取出来

Sub aa4()
Dim mygetnum As String
Dim regEX As Object
strSrc = "移动:宁波海曙丁家村南NR(new_5GY);[需求ID31712]"
  Set regEX = CreateObject("vbscript.regexp")

  With regEX
.Global = True
.Pattern = "[移动: \w][NR\w]"     
    mygetnum = .Replace(strSrc, "")
  End With

    Debug.Print mygetnum
End Sub


谢谢

最佳答案
2021-10-6 12:00
roserice 发表于 2021-10-6 09:43
老师给这个方法是好用的,再麻烦一下,现在我用  "  .Pattern = "移动.\.*" 可以把 "移动:"去掉,用  ".Patt ...

.Pattern ="移动:|NR.*|(.*"

发表于 2021-10-5 23:35 | 显示全部楼层

demo.rar

11.23 KB, 下载次数: 6

回复

使用道具 举报

发表于 2021-10-6 00:32 | 显示全部楼层
2楼的我这里 测试不成功

学艺不精 ,

.Pattern = "
(移动:).*?(?=(NR|())
"
再把结果 的 "移动:" 去掉 , 这样貌似达到楼主要求
回复

使用道具 举报

 楼主| 发表于 2021-10-6 00:37 | 显示全部楼层
谢谢老师回答,公式的意思是从空格开始,提取不含空格的字符串?+是什么意思?自定义函数我刚打开excel时是显示结果的,但是双击公式单元格时,显示#value错误,请老师再指教,谢谢

回复

使用道具 举报

发表于 2021-10-6 01:44 | 显示全部楼层
roserice 发表于 2021-10-6 00:37
谢谢老师回答,公式的意思是从空格开始,提取不含空格的字符串?+是什么意思?自定义函数我刚打开excel时是 ...

Function demo(s)
    Set re = CreateObject("vbscript.regexp")
    re.Pattern = "([^]+)"
    demo = re.Execute(s)(0).submatches(0)
End Function

可能是编码的问题,红色部份请再人工重新输入试试 ( 全型冒号全型左括号)

+ 号的意思是 前面的字元重覆 1 次以上

评分

参与人数 1学分 +2 收起 理由
roserice + 2 学习了,谢谢老师解答

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2021-10-6 09:43 | 显示全部楼层
cutecpu 发表于 2021-10-6 01:44
Function demo(s)
    Set re = CreateObject("vbscript.regexp")
    re.Pattern = ":([^(]+)"

老师给这个方法是好用的,再麻烦一下,现在我用 "  .Pattern = "移动.\.*" 可以把 "移动:"去掉,用  ".Pattern = "NR.*" " 可以把NR开始的字符去掉,想问下老师怎么才能把这两个式子组合在一起,起到掐头去尾的作用,从而达到解题 的作用,谢谢了
回复

使用道具 举报

发表于 2021-10-6 12:00 | 显示全部楼层    本楼为最佳答案   
roserice 发表于 2021-10-6 09:43
老师给这个方法是好用的,再麻烦一下,现在我用  "  .Pattern = "移动.\.*" 可以把 "移动:"去掉,用  ".Patt ...

.Pattern ="移动:|NR.*|(.*"

评分

参与人数 1学分 +2 收起 理由
roserice + 2 太强了

查看全部评分

回复

使用道具 举报

发表于 2021-10-6 13:00 | 显示全部楼层
roserice 发表于 2021-10-6 09:43
老师给这个方法是好用的,再麻烦一下,现在我用  "  .Pattern = "移动.\.*" 可以把 "移动:"去掉,用  ".Patt ...

7 楼大侠 完美地解决兄弟的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-14 19:50 , Processed in 0.305709 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表