gpt4 book ai didi

regex - VBA正则表达式之后的一切

转载 作者:行者123 更新时间:2023-12-04 20:12:12 25 4
gpt4 key购买 nike

我有一句话“lorem ipsum dolor marker words blah blah blah”

我只需要(但不包括)“标记词”之后的词。 “标记词”是句子中唯一保持不变的词。

我设法找到(?<=\bmarker words\s)(\w+)这不仅在vba中不起作用,而且在标记词ex之后也只返回一个词:blah但我不确定如何将其扩展到字符串的其余部分(如果我要在 Excel 之外处理它)。我的研究表明 vba 甚至根本不支持后视,所以我被卡住了。

最佳答案

VBA VBScript 正则表达式不支持lookbehind 构造。您只能依靠捕获:

\bmarker words\s+(.*)

regex demo

结果在 SubMatches collection .
\bmarker words\s+子模式匹配整个单词 marker words后跟 1 个或多个空格和 (.*) subpattern 匹配除换行符以外的零个或多个字符,并将其放入捕获组(内存缓冲区)中,可以使用特定于语言的方法进一步检索该值。

VBA代码:
Sub CaptureSubstring()
Dim str As String
Dim objMatches As Object
str = "lorem ipsum dolor marker words blah blah blah"
Set objRegExp = CreateObject("VBScript.RegExp") ' Declare the RegExp object
objRegExp.Pattern = "\bmarker words\s+(.*)" ' Set pattern
Set objMatches = objRegExp.Execute(str) ' Execute the regex match
If objMatches.Count <> 0 Then ' Check the result
Debug.Print objMatches.Item(0).SubMatches.Item(0) ' Print Match 1, Submatch 1
' > blah blah blah
End If
End Sub

关于regex - VBA正则表达式之后的一切,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35855040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com