VBscript 正则表达式替换

2024-03-27

我不知道为什么这仅适用于找到的最后一个实例,而不是我所期望的所有实例。任何帮助表示赞赏。

输入字符串:

<a href="http://www.scirra.com" target="_blank" rel="nofollow">http://www.scirra.com</a><br /><br />
<a href="http://www.scirra.com" target="_blank" rel="nofollow">http://www.scirra.com</a><br /><hr>

Regex:

'SEO scirra links
Dim regEx
Set regEx = New RegExp

' BB code urls
With regEx
    .Pattern = "<a href=\""http://www.scirra.com([^\]]+)\"" target=\""_blank\"" rel=\""nofollow\"">"
    .IgnoreCase = True
    .Global = True
    .MultiLine = True
End With
strMessage = regEx.Replace(strMessage, "<a href=""http://www.scirra.com$1"" target=""_blank"" title=""Some value insert here"">")

set regEx = nothing

Output:

<a href="http://www.scirra.com" target="_blank" rel="nofollow">http://www.scirra.com</a><br /><br />
<a href="http://www.scirra.com" target="_blank" title="Some value insert here">http://www.scirra.com</a><br /><hr>

任何人都可以阐明为什么它只将标题添加到最后找到的实例吗? (我测试过更多,总是只适用于最后一个)


这是因为你的正则表达式中是这样的:

...a.com-->([^\]]+)<--

你尝试匹配所有不是的东西],一次或多次,在您的输入中。并且由于没有]在您的输入中,它会吞噬所有内容(是的,甚至是换行符),但必须回溯以满足您的正则表达式的其余部分,这意味着它会回溯到last的发生" target="_blank" .....

如果您想更换rel="nofollow"并允许后面的任何路径http://www.scirra.com,您可以改用这个正则表达式:

(<a href="http://www\.scirra\.com((/[^/"]+)*/?)" target="_blank" )rel="nofollow">

并将其替换为:

$1title="Some value insert here">

复制/粘贴您当前的代码:

Dim regEx
Set regEx = New RegExp

' BB code urls
With regEx
    .Pattern = "(<a href=""http://www\.scirra\.com((/[^""/]+)*/?)"" target=\""_blank\"" )rel=\""nofollow\"">"
    .IgnoreCase = True
    .Global = True
    .MultiLine = True
End With
strMessage = regEx.Replace(strMessage, "$1title=""Some value insert here"">")

但请注意,这对于替换的 URL 来说是相当严格的。例如,目标内容是否有可能是其他内容,或者有更多属性?

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

VBscript 正则表达式替换 的相关文章

随机推荐

  • 为什么 valarray 这么慢?

    我正在尝试使用 valarray 因为它在操作向量和矩阵时非常类似于 MATLAB 我首先做了一些性能检查 发现valarray无法达到书中声明的性能C 编程语言 https en wikipedia org wiki The C 2B 2
  • 为什么 IIS 中的授权规则不会限制对我的 WCF 服务的访问?

    我有一个托管在 IIS 10 中的独立 WCF 服务 我想将对 Web 服务的访问限制为选定的用户组 我可以通过在 IIS 中执行以下操作来为 Web 应用程序执行此操作 身份验证 仅 Windows 身份验证 禁用匿名身份验证 授权规则
  • JAXB:类转换异常,但类具有相同的名称

    我有一个有趣的问题 当我启动 glassfish 服务器时 一切正常 但是 我更改了一些代码并发布了服务器 然后运行我的客户端 SistemGirisClientKullaniciDogrula 应用程序抛出此异常 java lang Cl
  • UnicodeDecodeError:“utf-8”编解码器无法解码位置 34 中的字节 0xe3:无效的连续字节

    我想用以下代码在 python 文件中打开一些波斯语文本文件 for line in codecs open 0001 txt encoding UTF 8 lines appends line 但它给了我这个错误 gt Traceback
  • Primefaces - 用于数据表中实时过滤的自定义组件

    PrimeFaces 对 p dataTable 的过滤器做得非常好 UX 网站很棒 因为过滤器字段位于列标题中 因此毫无疑问您正在过滤什么 并且它正在实时工作 数据会随着您的输入而变化 好吧 只有当您短暂停顿时 但它在我的意见正是用户所期
  • ASP.NET MVC Html 帮助程序

    我尝试创建一些 Html Helpers 它们将具有开始标记和结束标记 其中将包含其他内容 如 Html BeginForm 那样 例如 在 Razor 中 我们可以使用 Html BeginForm 帮助器 其语法如下 using Htm
  • 如何将外部JS脚本添加到VueJS组件中?

    我必须为支付网关使用两个外部脚本 现在两者都被放入index html file 但是 我不想在开始时加载这些文件 仅当用户打开特定组件时才需要支付网关 using router view 有办法实现这个目标吗 Thanks 解决这个问题的
  • 如何手动填充 ViewModel(不使用 AutoMapper!)

    我知道有很多关于这个主题的帖子 但我找不到一个可以帮助我做我想做的事情 我知道我最终会使用 Automapper 但在开始使用它之前 我想学习如何手动执行操作 我想创建一个 ViewModel 通过存储库用我的实体中的值填充它并将其发送到我
  • 从 Mathematica 中的 Web 设置用户代理导入

    当我使用 Mathematica 连接到我的网站时 Import mysite Data 并查看我的 Apache 日志 我看到 99 XXX XXX XXX 22 May 2011 19 36 28 0200 GET HTTP 1 1 2
  • 我可以向 JLabel 添加操作侦听器吗?

    我想用 JLabel 替换 JButton 并且希望我的代码在单击 JLabel 时执行某些操作 当我拥有 JButton 时 我使用操作侦听器来处理按钮上的点击 myButton addActionListener new clicksL
  • 如何在Robot Framework中将图像添加到html日志中?

    如何将图像添加到机器人框架的html日志中 我想在 Robot Framework 的 html 日志中添加一些图片 有人可以对此有一些想法吗 Keyword Log来自内置库有html参数可能可以满足您的需要 参见文档 http robo
  • DDD:通过身份引用聚合根内的实体

    我一直在寻找正确的参考方式entities位于一个聚合根 当我们只得到他们的身份来自 URL 参数 我问了一个上一个问题 https stackoverflow com questions 7196820 update an entity
  • C++ 方法调用中前导“::”的目的是什么[重复]

    这个问题在这里已经有答案了 我一直在使用 Boost 库 在 Boost Exception 中 我注意到如下代码 define BOOST THROW EXCEPTION x boost throw exception x 只是出于好奇
  • 避免控制台消息形式封装函数

    我正在使用一个包函数 coreenv 来自 seewave 它在控制台中创建一条 请稍候 消息 正如我反复所说的那样 该消息非常烦人 所以 我需要一种方法 从我的代码中 暂时禁止控制台消息 OR 访问功能代码并取消消息行 以下不是我的真实代
  • 为什么 JSON 比 XML 更轻量?

    我发现 JSON 和 XML 之间的区别 因为 两者都是为了系统之间的数据交换 但是JSON和XML之间有一个很大的区别 即JSON比XML更轻量级 但我无法找到 JSON 轻量级的真正原因 是什么让 JSON 变得轻量级 我发现的一个答案
  • 在 Mac OS X 上使用 pip 安装 pycrypto 时出现 Broken Pipe 错误

    我正在尝试通过 pip 在 OS X 上安装 pycrypto 版本 2 3 当编译器尝试编译 MD2 c 时 我收到 Broken pipeline 错误 使用 easy install 时我遇到了非常类似的错误 这是我收到的错误 bas
  • 在 Three.js 中针对“子场景”进行光线投射

    因此 我正在使用 Three js 示例中的 webgl interactive cubes html 并且我有一个相对简单的问题 是否可以测试光线与对象的子对象的相交 例如 如果我做类似的事情 for var i 0 i lt 2000
  • IPython 的历史向后搜索未按预期工作

    IPython 的history search backward功能是我最喜欢的功能之一 history search backward允许您键入命令的一部分 然后在阅读行历史记录中向后搜索以该命令的该部分开头的命令 默认情况下 我相信 这
  • Kafka分区中消息分布不均匀

    我有一个主题 有 10 个分区 1 个消费者组 有 4 个消费者 工作线程大小为 3 我可以看到分区中的消息分布不均匀 一个分区有太多数据 而另一个分区是空闲的 如何让我的生产者将负载均匀分配到所有分区 以便所有分区都得到正确利用 根据De
  • VBscript 正则表达式替换

    我不知道为什么这仅适用于找到的最后一个实例 而不是我所期望的所有实例 任何帮助表示赞赏 输入字符串 a href http www scirra com target blank http www scirra com a br br a