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

基于正则表达式从多格式文本语料中提取Name标签值的方法

姓名提取正则实现方案

直接用以下正则即可覆盖全部4种场景,不需要硬编码按空格截断:

/Name\s*:?\s*(.*?)(?=\s*(?:Date|Age)\s*:?|$)/i

正则逻辑说明

  • Name\s*:?\s*:精准定位Name标签,兼容标签后带任意空白、有无冒号的情况,覆盖带冒号、无冒号两种格式
  • (.*?):非贪婪模式捕获Name标签后的内容,不管是单名还是带姓氏的全名都能完整抓取,不会漏取多段姓名
  • (?=\s*(?:Date|Age)\s*:?|$):通过正向预查定义抓取终止边界:要么遇到下一个相邻的固定字段(Date/Age,同样兼容字段前带空白、有无冒号的情况),要么到字符串末尾,不管Name出现在字符串哪个位置都能正确截断,不会把后续字段的内容混入姓名结果

场景验证

对应列出的4种测试输入,取正则第一个捕获组的结果完全符合预期:

  • 输入Name: ABC Def Date: 8-01-09 Age: 5,输出ABC Def
  • 输入Name: Abc Date: 8-01-09 Age: 5,输出Abc
  • 输入Name ABC Date 8-01-09 Age 5,输出ABC
  • 输入Date 8-01-09 Name ABC DEF Age 5,输出ABC DEF

如果后续新增其他和Date、Age同级的固定字段,直接把字段名加到正则中(?:Date|Age)的分组里即可,不需要调整整体匹配逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:18:09