如何使用Regex提取三组字母数字后、数字前缀内容前的目标文本?
正则提取目标文本方案
需求概述
从给定的条目文本中提取指定目标内容:
- 每个条目开头为三组空格分隔的无意义字母数字组合
- 目标文本位于这三组内容之后,且后续紧跟以数字开头的日期格式内容,目标文本可包含空格和数字
- 最终需要得到仅含目标文本的列表
正则实现方案
适配带<strong>标签的文本
针对你提供的带HTML标签的原始文本,使用以下正则可直接捕获标签内的目标内容:
^\S+\s+\S+\s+\S+\s+<strong>(.+?)<\/strong>\s+\d+\/
逻辑拆解
^\S+\s+:匹配开头第一组非空白字符(字母数字组合)及后续空格,重复三次,跳过开头的三组无意义内容<strong>(.+?)<\/strong>:精准匹配<strong>标签,并用非贪婪模式捕获标签内的目标文本\s+\d+\/:匹配标签后的空格+数字+斜杠(对应日期格式的起始部分),以此确定目标文本的结束边界
适配无HTML标签的文本
如果文本不含<strong>标签,可使用简化版正则:
^\S+\s+\S+\s+\S+\s+(.+?)\s+\d+\/
提取效果示例
原始条目:
FTBVHT HJMOW W0001 BIANCO NATURALE 06 / 29 GENNAIO - 31 3 1020.00
F6M0DT HLM7L F0758 ROSA 2 06 / 29 GENNAIO - 31 3 3060.00
FXX14T JFMAL N0000 NERO 06 / 29 GENNAIO - 31 4 1520.00
提取后得到:
- BIANCO NATURALE
- ROSA 2
- NERO
内容的提问来源于stack exchange,提问作者Herojos
相关产品推荐
相关产品推荐

