查找字符串中的所有字符串

2024-03-29

我通过 http 请求响应文本获取 StrTxt 作为 html 字符串。我想找到 StrTxt 中所有出现的“字符串”。

像这样的东西。

for each string in StrTxt
StrTxt = "all matched strings from StrTxt"
do something StrTxt.

Edit这被标记为可能重复,但事实并非如此。如何循环遍历Word文档中的每个单词 - VBA宏 https://stackoverflow.com/questions/22711120/how-to-loop-through-each-word-in-a-word-document-vba-macro解释如何在文档中查找字符串而不是字符串。

这很简单。如何查找字符串中的所有字符串?我的标题不是已经说明了一切吗?

Edit 2

根据 Ansgar Wiechers 的回答,我尝试遵循。

Do
i = InStr(strtxt, "startstring")
      If i > 0 Then
        strtxt = Mid(strtxt, i, Len(strtxt) - i)
        i = InStr(InStr(strtxt, "midstring") + 1, strtxt, "endstring")
        If i > 0 Then
         strtxt = Left(strtxt, i + Len(endstring)) ' I am using i+4 as I know the length
        WScript.Echo strtxt
        End If
      End If
Loop While i > 0

它只给出了一次出现。如何正确循环?


如果你想使用InStr要在字符串中搜索特定子字符串的所有出现位置,您需要重复调​​用该函数,在最后一个匹配后(至少)一个字符开始每个新搜索。

response = "..."  'your HTTP response string
srch     = "..."  'the string you want to find in the response

start = 1
Do
  pos = InStr(start, response, srch, vbTextCompare)
  If pos > 0 Then
    start = pos + 1  'alternatively: start = pos + Len(srch)
    WScript.Echo pos
    WScript.Echo Mid(response, pos, Len(srch))
  End If
Loop While pos > 0

如果您希望比较区分大小写,请替换vbTextCompare with vbBinaryCompare.


Edit:要查找以某个字符串开头、包含另一个字符串并以第三个字符串结尾的模式,最好使用正则表达式 https://msdn.microsoft.com/en-us/library/6wzad2b2%28v=vs.84%29.aspx. @TylerStandishMan https://stackoverflow.com/users/2062411/tyler-standishman已经展示了基本原理他的回答 https://stackoverflow.com/a/35241153/1630171,但是在您的场景中需要观察一些事情。

response = "..."  'your HTTP response string

startTerm = "startstring"
midTerm   = "midstring"
endTerm   = "endstring"

Set re = New RegExp
re.Pattern    = startTerm & "[\s\S]*?" & midTerm & "[\s\S]*?" & endTerm
re.Global     = True
re.IgnoreCase = True  'if required

For Each m In re.Execute(response)
  WScript.Echo m
Next

a 中的一些字符正则表达式 https://msdn.microsoft.com/en-us/library/1400241x%28v=vs.84%29.aspx有特殊含义(例如.匹配除换行符之外的任何字符),因此您需要确保开始、中间和结束术语中的任何此类字符均已正确转义(例如使用\.用于匹配文字点)。如果您要匹配的子字符串跨越一行以上,您需要表达式中与搜索词之间的任意文本匹配的部分来包含换行符(例如[\s\S]匹配任何空白或非空白字符)。您可能还想让匹配变得非贪婪,否则您将从第一次出现时得到一个匹配startTerm到最后一次出现endTerm。修改器就是这样的*? is for.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找字符串中的所有字符串 的相关文章

  • 使用 Excel VBA 在 Outlook 电子邮件中使用 HTML 设置背景图像

    我正在尝试使用 Excel VBA 创建一封有关澳大利亚儿童癌症研究所的电子邮件 并带有背景图像 CCIALittleGirl jpg 然后 我希望在其上方有一个文本或文本框 最好是带有白色粗体文本 我可以在运行时填充这些文本 我可以在电子
  • 防止在 Windows 资源管理器中打开重复的文件夹或子文件夹

    我正在使用下面的代码打开特定文件夹 我需要在打开之前检查一下 如果是的话文件夹或子文件夹是否已在 Windows 资源管理器中打开 以防止重复 感谢任何有用的评论和答案 Sub Prevent opening duplicate folde
  • 索引多列并匹配不同的值,返回跨列的唯一值列表

    我已经在漫长的几周内广泛寻找解决我的问题的方法了 我提出了一个部分有效的解决方案 我将其包含在底部 供那些可能知道如何修改 扩展它们以解决问题的人使用 这就是我想要完成的任务 以下描述参考此屏幕截图https i stack imgur c
  • 通过 Whatsapp 从 Excel 发送图片

    我们如何通过 Whatsapp 从 Excel 发送图片 我找到了通过以下方式发送消息的vba代码https web whatsapp com https web whatsapp com Sub Test Dim text As Stri
  • 将数据从 Excel 导出到 Outlook

    我已经用 Excel 起草了一封电子邮件 其中填充了数据表中的信息 单元格 A1 到 A4 包含 嗨 希望你做得好 和消息 等等 A5到H10有一个包含信息的表格 A11到A30有类似 期待您的回复 的电子邮件内容 我只想复制 A1 A4
  • 如何通过VBA刷新所有单元格

    有没有办法触发 从VBA Excel要求它重新评估所有Excel单元格 谢谢 The 计算 http msdn microsoft com en us library aa223802 28office 11 29 aspx方法可以重新计算
  • 列表框错误“无法设置列表属性。属性值无效。”

    我有一个带有列表框 文本框 组合框和保存按钮的用户表单 下面是我的保存按钮代码 Private Sub cmdsave Click Dim x As Integer x Me ListBox1 ListCount If Me cmbtran
  • 使用 VBA 在另一个 Access 实例中打开特定窗体

    所以我在这里四处查看并找不到我的问题的答案 至少不完全是 案例如下 我在 DBase1 中 想要单击一个按钮并在单独的访问实例中打开 DBase2 中的 NeuSteckbrief 表单 我设法使用以下代码在单独的实例中打开 DBase2
  • Excel VBA 选择.替换,如果替换,则将文本放在替换行的 a 列中

    我有一些宏 例如 Columns F M Select Selection Replace What Replacement LookAt xlPart SearchOrder xlByRows MatchCase True SearchF
  • 按日期计算 Outlook 中的电子邮件

    我有以下代码来计算 Outlook 文件夹中的电子邮件数量 Sub HowManyEmails Dim objOutlook As Object objnSpace As Object objFolder As Object Dim Ema
  • VBA:删除数组项后减少循环迭代?

    在 Excel 的 VBA 中 For i 0 To UBound artMaster For j i To UBound artMaster If i lt gt j And artMaster i VDN artMaster j VDN
  • 有没有办法设置一个变量一次并在多个地方使用它而不给它模块级别的范围?

    我有一个循环将用户窗体控件添加到集合中 由于多个地方都需要该集合 因此我将其放入模块中并在需要时调用它 这意味着该集合仅在需要时才位于内存中 但这也意味着我每次想要使用它时都会运行一个循环 I could已给出集合模块级别范围并在第一次需要
  • 在 vba 上将值粘贴到另一个工作簿工作表上时出现问题

    我有以下代码 以便从工作簿复制工作表并将其粘贴到另一个名为 Control de precios 的工作簿的工作表 1 上 Sub createSpreadSheet Set NewBook Workbooks Add With NewBo
  • Excel Q - 带有二维数组的 SUMIFS

    我有一个二维数组 水平轴上的日期和垂直轴上的标识号 我想要以特定日期和 ID 为条件的总和 并且我想知道如何使用 SUMIFS 来执行此操作 由于某种原因 我似乎不能 因为数组是二维的 而标准范围是一维的 谁能给我关于我可以使用的其他公式的
  • 远程控制或脚本打开 Office 从 Python 编辑 Word 文档

    我想 最好在 Windows 上 在特定文档上启动 Open Office 搜索固定字符串并将其替换为我的程序选择的另一个字符串 我该如何从外部 Python 程序中做到这一点 OLE 什么 原生 Python 脚本解决方案 The doc
  • 使用 Python 在 OpenOffice/Microsoft Word 中格式化输出

    我正在开发一个需要格式化 可编辑输出的项目 Python 由于最终用户不会精通技术 因此输出需要采用文字处理器可编辑的格式 格式很复杂 要点 段落 粗体等 有没有办法使用Python生成这样的报告 我觉得应该有一种方法可以使用 Micros
  • 使用查询选择器从 VBA 中抓取

    我使用了该网站的代码来提取数据site https bazashifer ru proflist profnastil Option Explicit Public Sub GetInfo Dim sResponse As String i
  • MS Access VBA:通过 Outlook 发送电子邮件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何使用 MS Access VBA 通过帐户发送电子邮件 我知道这个问题很模糊 但是很难在网上找到在某种程度上还没有过时的相关信息 编辑
  • 复制列中的所有单元格[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一张表 有 200 行 行间有一
  • Range.End() 困惑

    我有一个关于 VBA 中 Range End 属性的一般性问题 我已经阅读了有关该房产的信息here http msdn microsoft com en us library bb221181 aspx 但我还是很困惑 例子 With w

随机推荐

  • 选择所有直到第一次出现字符

    如果我有数据 其中 a 之前的字符数 总是不同的我怎么写SELECT语句来获取所有字符直到管道字符 样本数据 asdf adkfdll dd asdkdkdk da d WITH T C AS SELECT asdf adkfdll dd
  • 使用大型预编译头文件时 cc1plus.exe 崩溃

    我在使用 MinGW 预编译头文件时遇到问题 编译器似乎找到了预编译头文件 但 cc1plus exe 之后立即崩溃 cc1plus exe 已停止工作 我知道这可能与 cc1plus exe 的堆栈大小较低有关 因此我执行了以下操作来增加
  • 如何取消屏蔽 JavaFX 密码字段或正确屏蔽文本字段?

    在我的用户界面中 我有一个密码字段 http docs oracle com javafx 2 api javafx scene control PasswordField html像这样 呃 最下面那个 我希望用户能够选中您在图片中看到的
  • 更改 window.location.ancestorOrigins

    有什么办法可以改变或阻止使用window location ancestorOrigins在 Chrome 下的 iframe 网站中 出于安全原因 我不希望 iframed 页面能够检测到顶部 url 在 Firefox 下 如果指向另一
  • XCode 4 存档错误:找到一个或多个 PCH 文件,但它们无效

    在此记录一个奇怪的 XCode 4 错误以供将来参考 找到一个或多个 PCH 文件 但它们无效 清理并不能解决问题 您需要通过按住 ALT 并从菜单中选择产品来清理构建文件夹 清理 条目现在已更改为 清理构建文件夹 这将擦除不良的 PCH
  • 对project.json中的依赖关系感到困惑

    在project json 文件中 我们有一个依赖项部分 然后我们还有一个框架部分 其中每个框架下可以有更多依赖项 我很困惑为什么有时依赖项需要放在框架部分而有时需要放在主要依赖项部分 例如 在我的几个项目中 我在 dnxcore50 下有
  • Google Maps API v3 For 循环问题

    也许我完全偏离了我想做的事情 但我很想回到版本 2 因为我可以轻松地工作 但我希望对移动设备友好 我正在尝试生成一些标记 为了保存代码 我将标记生成放入 for 循环中 该循环循环遍历标记数组 有实际值而不是 long lat x x x
  • SELECT FOR UPDATE 在 MySQL 中保存整个表而不是逐行保存

    我将让多个客户端将数据输入数据库 并且我必须确保事务不会混合在一起 我在文档中读到START TRANSACTION and SELECT FOR UPDATE锁定它读取的每一行 SELECT FOR UPDATE 读取最新的可用数据 并在
  • 在多个编辑器之间共享 Quill 工具栏

    与伟大的Quill http quilljs com Javascript 的富文本编辑器 我试图让两个或更多编辑器共享同一个工具栏 我想 从文档 http quilljs com docs api 目前这是不可能的 所以我试图通过 API
  • 将 AngularJs 1.5 升级到 1.6 - $compile reg 控制器实例的更改会影响哪些具体绑定?

    文档 https docs angularjs org guide migration migrate1 5to1 6 ng services 24compile从 AngularJs 1 5 升级到 1 6 时 compile 的变化如下
  • 尝试从屏幕+麦克风录制流时收到“DOMException:由于关闭而失败”

    我正在构建一个扩展程序 它也可以记录我的屏幕和麦克风音频 概述 我有 content js 尝试访问navigator mediaDevices getUserMedia 接下来我向background js发送消息 它再次尝试访问navi
  • Swing - MaskFormatter - 从文本字段右侧输入数字

    我是 Swing Java 开发的新手 有人可以帮我解决这个问题吗 我有一个带有 maskformatter 的 jformattedtextfield 它工作得很好 但我唯一想知道的是我们是否可以使其从右侧输入数字 下面的代码可以很好地从
  • jQuery 过滤器:包含链接(a href="#")

    我有一个当前的链接 a href 但很快客户就会将链接更改为 a href something 当链接变成某种东西时 我想使用 jQuery 来更改 css 但我不知道如何为属性编写过滤器 href 您可以使用以下两个选项来比较您的href
  • cypress 支持软断言吗?

    cypress 支持软断言吗 例如 我正在浏览 n 个元素并想要验证它们的值 如果任何元素的值不匹配 则测试失败 它不会继续验证下一个元素的值 有没有办法验证所有元素值并在最后显示失败的值 EDIT 我可能误解了 如果你的意思是软断言cy命
  • Cookie 未更新

    我正在尝试更新 cookie 值 但它不起作用 我尝试过的所有操作都不会更新 cookie 而且我总是得到 cookie 的初始值 所以我进行了搜索 根据 MSDN 我应该能够通过执行以下操作来更新 cookie HttpCookie co
  • JFrame背景图片

    我正在创建一个简单的 GUI 我希望有一个背景图像 2048 X 2048 填充整个窗口 并在左上角有一个正方形 可以偶尔加载 64 X 64 图像 如何才能做到这一点 我已经知道如何设置 JFrame 的大小 它的图像加载我需要帮助 这是
  • 为什么 java.awt.Point 提供了设置和获取双精度数的方法,但将 x 和 y 存储为 int?

    正如您在 Oracle 文档中看到的java awt Point http docs oracle com javase 6 docs api java awt Point html x 和 y 存储为int 然而 getX and get
  • 创建服务(SERVICE_ACCEPT_SESSIONCHANGE)

    我正在尝试按照以下链接中记录的示例创建服务 http msdn microsoft com en us library bb540475 v VS 85 aspx http msdn microsoft com en us library
  • git-svn 变基错误

    运行 git svn rebase 后出现以下错误 update index refresh 命令返回错误 1 有任何想法吗 以下是整个输出 git svn rebase dry run xxx iphone xxx prototype2
  • 查找字符串中的所有字符串

    我通过 http 请求响应文本获取 StrTxt 作为 html 字符串 我想找到 StrTxt 中所有出现的 字符串 像这样的东西 for each string in StrTxt StrTxt all matched strings