You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用正则表达式匹配OCR文本的换行符并提取匹配项后的两行内容

正则匹配提取NAME后两行内容解决方案

原有代码问题

  • 正则规则错误:^NAME+\\n中的+修饰符作用于前面的字符E,会匹配NAMEEEE这类不符合预期的内容;同时你提供的OCR文本中换行用的是<br />标签,不是\n转义换行,匹配\n无法命中目标。
  • 逻辑缺失:即使匹配到NAME开头的内容,原有代码也没有做后续两行的提取操作,直接打印整段文本无法得到你需要的内容。

可直接使用的Swift实现代码

let ocrText = "NAME <br />   JESUS<br />  LASTNAME"
// 正则规则:匹配NAME开头的内容,捕获后续两行的文本
let regex = try! NSRegularExpression(pattern: "^NAME.*?<br />\\s*(.*?)<br />\\s*(.*?)$", options: .dotMatchesLineSeparators)
if let match = regex.firstMatch(in: ocrText, range: NSRange(ocrText.startIndex..., in: ocrText)) {
    // 提取紧随NAME后的第一行内容
    let firstLineRange = Range(match.range(at: 1), in: ocrText)!
    let firstName = String(ocrText[firstLineRange])
    // 提取紧随NAME后的第二行内容
    let secondLineRange = Range(match.range(at: 2), in: ocrText)!
    let lastName = String(ocrText[secondLineRange])
    
    print(firstName) // 输出:JESUS
    print(lastName) // 输出:LASTNAME
}

补充说明

  • 如果你的OCR识别结果同时存在<br />和\n两种换行格式,可将正则中的<br />替换为(?:<br />|\\n),兼容两种场景。
  • 正则中的\\s*用于匹配OCR识别产生的多余空格、制表符等空白内容,避免因为前后有多余空白导致匹配失败。

内容的提问来源于stack exchange,提问作者LgSus97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:06:02