Swift 3 - 如何提取正则表达式中捕获的组?

2023-12-26

我正在使用 Swift 3 并尝试访问捕获的组。

let regexp = "((ALREADY PAID | NOT ALR | PROVIDER MAY | READY | MAY BILL | BILL YOU | PAID)((.|\\n)*))(( \\d+)(\\.+|-+)(\\d\\d))"

// check if some substring is in the recognized text
if let range = stringText.range(of:regexp, options: .regularExpression) {
    let result = tesseract.recognizedText.substring(with:range)
}

我希望能够提取出捕获的最后两个数字(\d\d)所以如果文本是:ALREADY PAID asfasdfadsfasdf 39.15,它会提取15。这是一个正则表达式生成器,显示了我想要的内容。通常情况下,我能够做到$8获取提取的第 8 个组,但我不知道如何在 Swift 3 中做到这一点。

http://regexr.com/3fh1e http://regexr.com/3fh1e


斯威夫特 4、斯威夫特 5

extension String {
    func groups(for regexPattern: String) -> [[String]] {
    do {
        let text = self
        let regex = try NSRegularExpression(pattern: regexPattern)
        let matches = regex.matches(in: text,
                                    range: NSRange(text.startIndex..., in: text))
        return matches.map { match in
            return (0..<match.numberOfRanges).map {
                let rangeBounds = match.range(at: $0)
                guard let range = Range(rangeBounds, in: text) else {
                    return ""
                }
                return String(text[range])
            }
        }
    } catch let error {
        print("invalid regex: \(error.localizedDescription)")
        return []
    }
}
}

example:

let res = "1my 2own 3string".groups(for:"(([0-9]+)[a-z]+) ")

(lldb) 资源 ▿ 2 个元素
▿ 0 : 3 个元素

- 0 : "1my "

- 1 : "1my"

- 2 : "1"   

▿ 1 : 3 元素

- 0 : "2own "

- 1 : "2own"

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

Swift 3 - 如何提取正则表达式中捕获的组? 的相关文章

  • Swift 客户端和根 SSL 证书身份验证

    积分得到token api of QLIK server with ssl证书 但执行任务后我收到这样的错误 完成时出现错误 代码 999 Your hostname and endpoint let hostname YOUR HOST
  • 更改 UIAlertController 的标题字体大小

    我正在尝试更改标题fontSize in an UIAlertController 但我无法管理如何设置我的NSMutableAttributedString to the title 财产 所以我一直在创造NSMutableAttribu
  • 从钥匙串保存和加载 |斯威夫特[重复]

    这个问题在这里已经有答案了 如何简单地将字符串存储在钥匙串中并在需要时加载 有几种SO解决方案 主要参考Git repo 但我需要最新 Swift 上最小和最简单的解决方案 当然 我不想添加 git 框架来简单地在我的项目中存储密码 有类似
  • 以编程方式进行排序时检索 ViewController 堆栈

    static func showMenuView parentVC UIViewController let storyboard UIStoryboard name Main bundle nil let resultController
  • 快速从 appDelegate 中 popToRootViewController

    我试图从应用程序委托弹出到导航堆栈的根视图控制器 并且在将 obj c 中的内容转换为 swift 时遇到一些问题 obj c 中的工作原理 UINavigationController navigationController UINav
  • 当我启动项目时没有 viewcontroller.swift 文件 [重复]

    这个问题在这里已经有答案了 我尝试启动该项目并使用视图控制器 但我没有看到它 仅appdelegate和scenedelegate和contentview 下面的代码应该添加到视图控制器中 但我不知道添加到哪里 它不断给我一条错误消息 指出
  • 如何同时关闭并弹出到视图控制器

    我的家庭视图控制器是Tabbarcontroller 从选项卡栏我导航到 A Viewcontroller TabarViewcontroller gt A 视图控制器 从A 视图控制器 我推 B 视图控制器 从B Viewcontroll
  • 不允许连续点的正则表达式

    我有一个正则表达式允许字母数字 下划线和点 但不允许连续点 2 a zA Z0 9 我现在还需要允许在字符串的第一个和最后一个字符中使用点 我怎样才能做到这一点 您可以像这样使用它和额外的前瞻 a zA Z0 9 不允许 开始时 不允许有
  • 在Python中高效匹配多个正则表达式

    当你有正则表达式时 词法分析器就很容易编写 今天我想用Python写一个简单的通用分析器 并想出了 import re import sys class Token object A simple Token structure Conta
  • SwiftUI NavigationView 看不到图像

    我有一个代码并制作 NavigationLink 按钮 我编写文本和图像 但我的图像看不到 请帮助我 VStack Image Coachs resizable aspectRatio contentMode fill frame widt
  • 限制正则​​表达式中的字符长度

    有没有办法限制正则表达式 http en wikipedia org wiki Regular expression最多 100 个字符with正则表达式 size size So Look at me 行不通的 我想限制数量 只允许 1
  • 如何过滤掉数组的数组

    您好 我有一个包含多个值的数组 我想尝试过滤掉搜索栏的索引 英语术语的一个例子是这样的 给我名称 Name2 的索引 并通过检查每个索引的第一个值中的所有字符串来执行此操作 Code Multiple Errors var received
  • 正则表达式等价

    有没有办法找出两个任意正则表达式是否等价 对我来说看起来很复杂的问题 但可能有一些 DFA 简化机制之类的 要测试等价性 您可以计算的表达式并进行比较
  • 正则表达式提取美国邮政编码,但不提取假代码

    使用 XML 包和 XPath 从网站上抓取地址 有时我只能得到一个嵌入了我想要的邮政编码的字符串 提取邮政编码很简单 但有时会显示其他五位数字的字符串 以下是 df 中问题的一些变体 zips lt data frame id seq 1
  • 提取单花括号内的值

    我想要一个收藏 value 一个字符串使用正则表达式 例如 lorem ipsum field1 lorem ipsum field2 lorem ipsum field1 lorem ipsum field2 field3 我会得到 fi
  • iOS 上每个选项的带有图像的操作表

    有没有办法在 iOS 上将图像添加到操作表中 与苹果在应用程序商店或苹果音乐应用程序上所做的一样 我对苹果文档的基本搜索表明我没有在操作表中子类化或添加子视图 UIActionSheet 并非设计为子类化 也不应向其层次结构添加视图 苹果文
  • macOS 应用程序中还需要 Swift 的嵌入式 dylib吗?

    Swift 5 发行说明说 对于运行 iOS 12 2 watchOS 5 2 和 tvOS 12 2 的设备 Swift 应用程序不再在构建变体中包含 Swift 标准库和 Swift SDK 覆盖的动态链接库 但在同一上下文中没有提及
  • Swift 3 '[UIApplicationLaunchOptionsKey:任意]?'无法转换为 '[String : NSString]'

    我有一个 TVOS 应用程序已从 Swift 2 转换为 Swift 3 但出现以下错误 我不确定如何让它安静下来 UIApplicationLaunchOptionsKey 任意 无法转换为 String NSString 它出现在这段代
  • R正则表达式获取第二个下划线之前的所有文本

    s lt 1 343 43Hello 2 323 14 fdh 99H 在 R 中 我想使用正则表达式来获取第二个下划线之前的子字符串 如何使用一个正则表达式来完成此操作 另一种方法是用 分割 然后粘贴前两个 一些东西 paste sapp
  • 在 Swift 中将 Int 转换为 UInt32

    我正在制作一个 Tcp 客户端 因此使用CFStreamCreatePairWithSocketToHost它期望第二个参数为 UInt32 这是我正在尝试做的事情的示例 func initNetwork IP String Port In

随机推荐

  • 如何在 Eclipse 中关闭制表符和换行符标记?

    我正在使用 Adob e 的 ColdFusion Builder 这是一个构建在 Aptana 之上的基于 Eclipse 的 IDE 突然间 我的 Eclipse 编辑器中显示了一种空白标记 我一定是不小心按下了组合键 这是一个屏幕转储
  • 枚举 Delphi 中已发布的属性和子属性

    如果之前问过这个问题 我们深表歉意 我对一些组件的定义如下 如果错误请指导我 因为我是初学者 我正在尝试的是枚举派生组件的所有已发布属性 特别是子属性 我能够枚举属性的名称 但是 是否可以枚举在程序执行期间可以访问其元素 如子属性 的已发布
  • 如何验证字符串是否是js中的有效日期[重复]

    这个问题在这里已经有答案了 我有用于获取不同值的字符串字段 收到的一些值是日期 现在我需要检查收到的值是否是日期 收到的日期可以再次采用不同的格式 I tried Date parse 如果格式为dd mm yyyy hh mm 但我收到了
  • Android Studio中Toolbar必须用AppBarLayout包裹吗?

    代码A来自项目建筑样本 https github com android architecture samples 工具栏被 AppBarLayout 包裹 我删除 AppBarLayout 并获得代码 B 代码 B 与代码 A 一样运行良
  • Flutter:一页上有两 (2) 个抽屉?

    我有一个顶部栏 左侧 设置 和右侧 配置文件 都有图标 我需要一个抽屉 根据单击的图标从左侧或右侧滑出 我的左侧 设置 工作正常 但我不明白如何在一页上有两个抽屉 我相信拥有两个抽屉比根据所选链接以编程方式编辑抽屉更有意义 但我以前也经常犯
  • GestureDetector.onTouchEvent(MotionEvent e) 在所有手势上调用 onLongPress

    我有一个自定义视图 我想在其上设置长按监听器 我正在使用以下代码来设置相同的内容 final GestureDetector gestureDetector new GestureDetector new GestureDetector S
  • Html.HiddenFor 在 ASP.NET 中错误地格式化 DateTime

    我正在用 C 编写 ASP NET MVC3 应用程序 并发现调用Html HiddenFor在我看来会呈现DateTime与我打电话时不同 且错误 Html DisplayFor 它从中获取值的模型确实有一个 DisplayFormat
  • Linq to SQL 的未来是什么

    我一直在网上搜索 Linq 教程 发现一些文章说 linq 可能会消失 你对此有什么看法 微软真的会废除linq吗 Linq to SQL 并没有像实体框架那样受到足够多的关注来发展其功能 MS 已决定追求丰富 发展 EF 对于 L2S 这
  • 为什么在 UI 中使用 DataTable 是错误的?

    我是初学者 我发现很难理解这里的一个概念 有人告诉我不应该在 UI 级别使用 DataTable 请帮助我理解这个概念 解决方案 MyApp Data MyApp Logic MyApp Web MyApp Web 引用 MyApp Log
  • Observer.onError 触发不一致

    我正在使用 Retrofit 访问我的 API 如下所示 public interface UserService POST user login public Observable
  • Libgdx 和 Box2DLights - 太亮 + 颜色变灰

    我正在使用 LibGDX 和 Box2DLights 编写一个游戏来进行照明 第一个问题是当我的灯光相互重叠时 我在太阳上有定向光 在角色上有点光 当它们重叠时 输出颜色太亮 我尝试改变灯光的颜色 但是当只有一盏灯 太暗 时 降低这些颜色会
  • 一个很好的参考卡/备忘单,其中包含 C 语言的基本排序算法? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我一直在寻找 没有太大运气 带有 C 语言 或者可能是伪代码 中的所有基本排序算法的完美参考卡 维基百科是一个很棒的信息来源 但这次我
  • getString() 和 getResources.getString() 之间的区别

    我注意到Activity类有两种不同的方法来获取 String 资源 这可以通过使用 getString int resId 从应用程序包的默认字符串表中返回本地化字符串 getResources getString int id 返回与特
  • .NET Framework可以在Win98上使用吗?

    我需要为客户编写一个在 Windows 98 上运行的小工具 由于这是一个非常小的项目 我希望我可以避免使用本机 C 并使用 C The net框架2 0下载 http www microsoft com downloads details
  • 在哪里可以找到 ReportEvent 函数使用的好示例?

    与大多数 传统 MSDN 页面一样 该页面报告事件 http msdn microsoft com en us library aa363679 VS 85 aspx信息太少 我无法理解它的意义 我尝试过搜索 但找不到一个好的 干净的 简单
  • 如何在经典 ASP 中设置断点? (IIS7/VS2010)

    我有一个混合 ASP NET 经典 ASP 应用程序 我希望能够在 ASP 代码中设置断点 这可能吗 在Win7上使用VS2010 Ultimate运行IIS7 在 VBScript 中 Stop http msdn microsoft c
  • 使用 MPI 分散不同大小的矩阵块

    假设所有矩阵都按行优先顺序存储 说明该问题的一个示例是将 10x10 矩阵分布在 3x3 网格上 以便每个节点中的子矩阵的大小如下所示 3x3 3x3 3x4 3x3 3x3 3x4 4x3 4x3 4x4 我在 Stackoverflow
  • 改进单选按钮的使用以启用/禁用表单字段

    我有两个单选按钮和两个相应的表单字段 根据选择的单选按钮 一个表单字段将被禁用 而另一个表单字段将被启用 我的代码可以工作 但我认为它可以改进 现在我有两个独立的进程 检查页面加载时选择了哪个单选按钮并禁用相应的字段 另一个在页面加载后响应
  • 将下拉菜单与年份绑定

    我必须在 C 中绑定一个下拉框 其中包含从 2008 年到当前年份的年份 我怎样才能实现它 您可以使用以下命令构建整数序列System Linq Enumerable Range var startYear 2008 myDropDownL
  • Swift 3 - 如何提取正则表达式中捕获的组?

    我正在使用 Swift 3 并尝试访问捕获的组 let regexp ALREADY PAID NOT ALR PROVIDER MAY READY MAY BILL BILL YOU PAID n d d d check if some