Excel 2007
我想从一个短语中提取符号“ /”之间的子字符串。
Private Function get_all_matches(phrase)
Dim regEx As Object
Dim result As Variant
Set regEx = CreateObject("vbscript.regexp")
With regEx
.IgnoreCase = True
.Pattern = "/.*/"
.Global = True
End With
Set result = regEx.Execute(phrase)
Set get_all_matches = result
End Function
然后我使用函数:
phrase = "where is /my/ ups /hiding/"
Set keys = get_all_matches(phrase)
结果是keys(0).Value:“ / my / ups / hide/"。
换句话说,外斜线之间的所有内容均被提取。 但是预期结果是:
keys(0).Value: "/my/"
keys(1).Value: "/hiding/"
你能帮我吗?
答案 0 :(得分:1)
您应该使用\/(.*?)\/
模式
模式说明:
/ 匹配字符/按字面意义(区分大小写)第一次捕获
组(。?) 。?匹配任何字符(行终止符除外)
*?量词-匹配零次和无限制次数,尽可能少的次数,根据需要扩展(惰性)/匹配字符/
在这里测试-> https://regex101.com/r/wdNY18/1