无法在 vba IE 中应用正则表达式

2023-12-21

我使用vba结合IE编写了一个脚本来解析应用程序网页中的联系信息regex在上面。我进行了很多搜索,但找不到任何可以满足我的要求的示例。这pattern可能并不理想地找到phone号,但这里主要关心的是我如何使用pattern在 vba IE 中。

再次:我的目的是解析电话号码661-421-5861从该网页申请regex在 vba IE 中。

这是我到目前为止所尝试过的:

Sub FetchItems()
    Const URL$ = "https://www.nafe.com/bakersfield-nafe-network"
    Dim IE As New InternetExplorer, HTML As HTMLDocument
    Dim rxp As New RegExp, email As Object, Row&

    With IE
        .Visible = True
        .navigate URL
        While .Busy = True Or .readyState < 4: DoEvents: Wend
        Set HTML = .document
    End With

    With rxp
        .Pattern = "(?<=Phone:)\s*?.*?([^\s]+)"
        Set email = .Execute(HTML.body.innerText) 'I'm getting here an error
        If email.Count > 0 Then
            Row = Row + 1: Cells(Row, 1) = email.Item(0)
        End If
    End With
    IE.Quit
End Sub

当我执行上面的脚本时遇到错误对象“IRegExp2”的方法“执行”失败当它到达包含的行时Set email = .Execute(HTML.body.innerText)。我怎样才能让它成功?


请注意,VBA 正则表达式不支持lookbehind。在这里,您可能想要捕获任何数字,后跟任意数量的数字和连字符Phone:.

您需要将模式重新定义为

rxp.Pattern = "Phone:\s*(\d[-\d]+)"

然后,您需要获取第一场比赛并访问其.SubMatches(0):

Set email = .Execute(HTML.body.innerText)
If email.Count > 0 Then
    Cells(Row+1, 1) = email.Item(0).SubMatches(0)
 End If

See the 正则表达式在行动 https://regex101.com/r/YEmqbv/2。被刺的绿色突出部分是什么.SubMatches(0) holds.

图案细节

  • Phone:- 文字子串
  • \s*- 0+ 空格
  • (\d[-\d]+)- 捕获组 1:一个数字,后跟 1+(由于+,你可以替换为*匹配零个或多个)数字或/和连字符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 vba IE 中应用正则表达式 的相关文章

随机推荐

  • Pandas json_normalize 的逆

    我刚刚发现 json normalize 函数 它在获取 JSON 对象并给我一个 pandas Dataframe 方面效果很好 现在我想要反向操作 它采用相同的 Dataframe 并给我一个 json 或类似 json 的字典 我可以
  • Django管道生成空文件

    我的 django 项目中有几个应用程序 我正在使用管道来压缩文件 并且一切正常 但我有一个名为 mypage 调用后生成的每个文件collectstatic是空的 如果我从mypage static进入另一个应用程序静态文件夹 它已正确生
  • 鼠标悬停时启动 GIF,否则暂停?

    因此 我尝试将这些图像放在我正在构建的页面的侧边栏上 这些图像是静态的 但当您将鼠标悬停时 它们会以 gif 形式呈现动画 我当前的设置是background imagecss 属性图像通常是静态 jpg 但在鼠标悬停时更改为动画 gif
  • 如何在 recyclerview 中创建带有数字和字母气泡的自定义滚动条等材质设计

    在许多新的 Android 应用程序及其最新更新中 这些应用程序 主要是材料设计 都有一个带有字母和数字的自定义滚动条 同时用拇指滚动滚动条 字母或数字出现在拇指旁边 我已将屏幕截图附加到滚动条的问题应用程序 联系人 Screenshot
  • 任务完成后才显示进度条

    我一直在尝试将进度条设置为选框 以便在另一个功能运行时继续移动 该函数运行后 我会显示消息 对于本例 我能够完成这项工作的唯一方法是与后台工作人员一起工作 然后有一个 做 循环直到在主窗体中运行的条件 直到操作完成 然后是我的消息框 这似乎
  • 我应该在 Redux App 中哪里处理排序?

    我有一个动作 减速器 组件 在我的一个组件 组件转储 中 我有一个选择 我获得有关我的商店的过滤器类型的信息 我可以在action或reducer中在哪里处理它 IMO 对数据进行排序的正确位置不是直接在减速器中 而是在选择器 来自 red
  • 识别 C/C++ 中未使用的函数 [重复]

    这个问题在这里已经有答案了 可能的重复 在大型 C 遗留应用程序中查找 死代码 https stackoverflow com questions 2380153 finding dead code in a large c legacy
  • wpf 组合框 selectedIndex=0 不起作用

    xaml
  • 什么时候可以将结构安全地散列为字节数组?

    对于相等意味着每个数据成员的相同的最派生类型和字节相等的结构 何时 如果有 可以将该结构安全地散列为字节数组 这个文件 http www open std org jtc1 sc22 wg21 docs papers 2012 n3333
  • 诗歌配置无效 - 不允许附加属性(“组”是意外的)

    最近 我在诗歌方面遇到了这个问题 我所有使用诗歌的命令都失败并出现以下错误 RuntimeError The Poetry configuration is invalid Additional properties are not all
  • 如何从 torrent 跟踪器响应中获取对等列表

    我正在制作一个种子客户端 我解码 torrent 文件并将此请求发送到跟踪器 http tracker mininova org announce uploaded 0 downloaded 0 compact 0 event starte
  • 为什么函数式语言如此大量地使用列表?

    我的意思是 列表相对于其他数据结构有哪些优势 使其在函数式语言中几乎不可避免 没有勺子 如果我告诉你没有字符串这样的东西怎么办 仅存在单个字符的列表 那么如果我告诉你不存在列表这样的东西呢 仅存在对 construct a pair of
  • Visual Studio Code 无法在 WSL 2 上运行/工作

    不知怎的 当我跑步时code 在 WSL 内部 它根本不执行任何操作 如果我which code它确实返回了 Windows 上的 VS Code 路径 但仍然没有任何反应 经过一番研究 真正解决我问题的是 在 WSL 终端中 运行rm r
  • 用于返回合格子节点值的字符串串联的 XPath

    任何人都可以建议一种 XPath 表达式格式 该格式返回一个字符串值 其中包含元素的某些合格子节点的串联值 但忽略其他值 div This text node should be returned em And the value of t
  • UIGestureRecognizer 导致循环保留?

    我在想 如果你将目标指定为self在手势识别器中initWithTarget action 方法 会引起循环retain吗 自从self将保留识别器self gestureRecognizers并且手势识别器也有可能将自身保留在initWi
  • 在类方法中使用 self

    我在 ShareKit 中遇到了这段代码 我不明白作者的想法 使用self在类方法中 有警告 不兼容的指针类型将 Class 发送到参数类型id
  • 用户在权限屏幕上单击“允许”后启动活动

    我的一项活动需要位置许可 我编写了下面的代码来获得许可 但在这种情况下 如果应用程序最初没有位置权限 则用户需要单击两次才能打开活动 我可以进行一些更改 以便一旦用户在 权限 屏幕上单击 允许 只有然后意图才会触发 int PERMISSI
  • 我无法将信息从表单输入到数据库[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 询问代码的问题必须对所解决的问题表现出最低限度的了解 包括尝试的解决方案 为什么它们不起作用以及预期结果 也可以看看 Stack Over
  • 如何检查 keras 训练是否已经在 GPU 中运行?

    有时我会犯一个错误 尝试在同一个 GPU 两个不同的脚本 中使用 keras 同时运行两个训练 导致我的机器崩溃或破坏两个训练 我希望能够在我的脚本中测试是否有一些训练正在运行 因此可以更改 GPU 或停止新的训练 我发现寻找答案的唯一提示
  • 无法在 vba IE 中应用正则表达式

    我使用vba结合IE编写了一个脚本来解析应用程序网页中的联系信息regex在上面 我进行了很多搜索 但找不到任何可以满足我的要求的示例 这pattern可能并不理想地找到phone号 但这里主要关心的是我如何使用pattern在 vba I