从字符串中提取引号中的单词

Extract words in quotes from a string

提问人:Sergey 提问时间:9/8/2022 最后编辑:CommunitySergey 更新时间:12/18/2022 访问量:205

问:

我需要提取子字符串以从字符串中转义引号。

例如,在字符串中

我睁开眼睛,说“向”世界“问好

我需要

“你好,世界”

包含用于解决问题的正则表达式模式,但不适用于 VBA。

Regex VBA 字符串 引用

评论


答:

1赞 GWD 9/8/2022 #1

您不需要正则表达式来执行此操作,请尝试:

Sub Test()
    Dim s As String
    s = "(I open my eyes and said ""hello to the ""world"")"
    Debug.Print s
    s = Mid(Left(s, InStrRev(s, """")), InStr(s, """"))
    Debug.Print s
End Sub

此打印

(I open my eyes and said "hello to the "world")
"hello to the "world"
1赞 Christofer Weber 9/8/2022 #2

我想将其写为正则表达式的简单方法是:

""".+"""

有关如何在 VBA 中使用正则表达式的参考:
如何在 Microsoft Excel 中使用正则表达式 (Regex) 单元内和循环

使用此示例代码进行测试

Sub RegexMatchingAndDisplayingAPattern()
Dim stringOne As String
Dim regexOne As Object
Dim theMatches As Object
Dim Match As Object
Set regexOne = New RegExp

regexOne.Pattern = """.+"""
stringOne = "(I open _my eyes_ and said  ""hello to the ""world"")"

Set theMatches = regexOne.Execute(stringOne)

For Each Match In theMatches
  Debug.Print Match.Value
Next

End Sub

评论

0赞 Sergey 9/8/2022
谢谢,我已经测试了该模式,它有效!
0赞 Sergey 9/8/2022
也感谢您提供如何使用正则表达式的链接,我将在未来对其进行检查。