正则表达式在 Swift 中获取方括号对之间的文本

2023-12-20

<strong>Lorem Ipsum.<\/strong> Lorem Ipsum. [link-to:shop-page \"instore-pickup\"]Learn More[\/link-to]

给定上面的示例字符串(它包括 HTML),它是我从第 3 方服务获得的,并且我无法控制改进或规范化它以适应 HTML 标准。

我需要以某种方式解析这部分[link-to:shop-page \"instore-pickup\"]Learn More[\/link-to]得到Learn More value.

我试过了\\[.*?\\](.*?)\\[.*?\\]正则表达式,但它不能满足我的需要。 得到[link-to:shop-page \"instore-pickup\"]Learn More[/link-to]因此。

func matches(for regex: String, in text: String) -> [String] {
    do {
        let regex = try NSRegularExpression(pattern: regex)
        let nsString = text as NSString
        let results = regex.matches(in: text, range: NSRange(location: 0, length: nsString.length))
        return results.map { nsString.substring(with: $0.range)}
    } catch let error {
        print("invalid regex: \(error.localizedDescription)")
        return []
    }
}

Wiktor,感谢您指出这一点,工作片段:

func matches(for regex: String, in text: String) -> [String] {
    do {
        let regex = try NSRegularExpression(pattern: regex)
        let nsString = text as NSString
        let results = regex.matches(in: text, range: NSRange(location: 0, length: nsString.length))
        return results.map { nsString.substring(with: $0.range(at: 1))}
    } catch let error {
        print("invalid regex: \(error.localizedDescription)")
        return []
    }
}

$0.range(at: 1)给出第 1 组。

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

正则表达式在 Swift 中获取方括号对之间的文本 的相关文章

随机推荐

  • 如何在Python中使用bzip2压缩文件?

    这是我所拥有的 import bz2 compressionLevel 9 source file foo bar txt this file can be in a different format like csv or others
  • 存储在文件中的序列化对象不可读

    问题是 当我将序列化对象存储在 txt 文件中时 它不是可读的形式 并且包含一些随机符号和字母 首先我想知道这背后的原因是什么 然后如何解决这个问题 好的 这是我的代码 我想要序列化的对象 package serialized import
  • 鼠标悬停在元素最左边 10px 处?

    当鼠标悬停在单元格最左边的 10 个像素上时 我需要更改表格单元格的颜色 目前我有这个 myTable table thead tr th nth child 3 mouseover function this css background
  • 使用 C# 将 JSON 字符串直接添加到 Azure Blob 存储容器

    我正在尝试加载 JSON 字符串 使用 Newtonsoft Json 序列化 无需创建临时文件 我使用返回字符串的 JsonConvert SerializeObject obj settings 在运行时序列化对象 按照微软文档 我可以
  • 为什么SGI STL不使用复制和交换习惯用法?

    我最近在 StackOverflow 上读到一个关于什么是复制和交换习语 https stackoverflow com questions 3279543 what is the copy and swap idiom并且知道复制和交换习
  • 并行调用数百个 azure 函数

    我有一个使用某些规则引擎执行规则的应用程序 我有大约 500 多个规则 我们的应用程序将收到大约 10 000 个条目 所有这 10 000 个条目都应该单独经过这 500 条规则进行验证 我们目前计划将所有规则迁移到 Azure 函数中
  • 发送数据时使用 POST 下载 R 中的文件

    我尝试下载一个文件 为了从服务器获取它 我需要同时发送数据 在命令行上使用curl 它可以正常工作 curl https www ishares com us product screener download dl data produc
  • R:使用 httr 模拟复杂形式

    我想得到的结果那种形式 http www memoiredeshommes sga defense gouv fr fr arkotheque client mdh base morts pour la france premiere gu
  • JavaFX TableView:单击时打开行之间的详细信息

    我正在尝试在 TableView 中显示旅行连接 到目前为止 这就像一个魅力 现在 我有点陷入尝试获取要在表行之间显示的连接的详细信息 这应该在选择表项时发生 问题是 详细信息的格式与我显示的连接的格式不同 所以我需要在两个表格行之间放置一
  • 如何获取 Material-UI 日期选择器值

    我正在使用 Material ui 日期选择器 我想做的是获取用户选择的值并将其设置为状态 但是我正在努力弄清楚这一点 所以任何帮助将不胜感激 这就是我现在正在做的事情 我的日期选择器组件如下所示
  • iOS:如何更改 UISplitViewController 中分隔符的颜色?

    我有一个小项目UISplitViewController The masterView is a tableView和detailView is a collectionView 它们的背景颜色都是黑色 但是当项目在模拟器中运行时 之间有一
  • 如何更正此错误:“‘Adminsite’对象没有属性‘root’”

    完整的错误消息是 AttributeError on running Django app on apache as localhost Adminsite object has no attribute root Environment
  • UITextVIew secureTextEntry 不起作用

    可能的重复Here https stackoverflow com questions 2164809 uitextview does not respect the securetextentry property here https
  • Lucene 相似性类的高级解释?

    你知道我在哪里可以找到高级解释吗Lucene相似度类 http lucene apache org java 2 2 0 api org apache lucene search Similarity html算法 我想理解它 而不必破译与
  • ASP.NET – 错误抛出或记录

    我们正在用 C 构建 ASP NET 应用程序 我们有 3 层 UI 业务和数据库 我们需要对错误处理 日志记录进行澄清 我们有一个错误日志框架来记录错误 我的问题是 我们需要在每一层记录错误吗或者仅在主调用层 UI 层 中通过将错误从业务
  • 用于 RIA 的 Flex/Openlaslzo?

    我最近偶然发现了 flex openlaszlo OL 两者似乎都非常有用 我对它们有几个问题 部署弹性应用程序需要什么 据我了解 flex sdk 是开源的 但是其他工具 用于开发和部署 是 所有权 部署 openlaszlo 需要什么
  • Swift NWListener 监听、取消和重新监听成功吗?

    我有一个应用程序 我应该有一个 websocket 仅当该应用程序位于前台时才侦听 我已经点击了生命周期通知并调用 start 并相应地停止 该应用程序可以正常工作 直到应用程序返回前台 此时我收到许多警告和错误 class SwiftWe
  • 使用数据库中的内容创建 PDF 文件

    我想打印 pdf 格式的门票 我已经能够检索票据详细信息 例如客户姓名 订单 ID 订单项目和总账单 我想将此详细信息放入准备打印的 pdf 文件中 我使用 html 和 php 标签从数据库中检索这些票证详细信息 如何将 php 文件中回
  • mouseout 和 mouseleave 不起作用

    嗨我正在使用mouseout and mouseleave方法 但两者都不起作用 我尝试修复它但找不到解决方案 我的代码看起来很好 没有错误 所以我想知道为什么它不起作用 这是示例代码link http jsfiddle net Dpp8a
  • 正则表达式在 Swift 中获取方括号对之间的文本

    strong Lorem Ipsum lt strong gt Lorem Ipsum link to shop page instore pickup Learn More link to 给定上面的示例字符串 它包括 HTML 它是我从