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

如何使用正则表达式解析以f开头字符串中的指定格式数字组列表

实现方案

核心思路通过两步实现:先做格式合法性校验,再提取所有符合要求的字段。

正则规则说明

格式校验正则

使用正则 ^f(?:\s+\d+\/\d+\/\d+)+$ 可同时满足你的两个校验需求:

  • ^f 限定字符串必须以字母f开头
  • (?:\s+\d+\/\d+\/\d+)+ 是非捕获组,要求f之后至少存在1组「空格分隔的三组数字用/拼接」的结构
  • $ 限定字符串末尾无其他无效字符

字段提取正则

校验通过后,用 \d+\/\d+\/\d+ 做全局匹配,就能拿到所有目标字段。

代码示例(Python)

import re

def parse_obj_face_line(line: str):
    line = line.strip()
    # 校验格式合法性
    if not re.fullmatch(r"^f(?:\s+\d+\/\d+\/\d+)+$", line):
        return []
    # 提取所有匹配的字段
    return re.findall(r"\d+\/\d+\/\d+", line)

# 测试
if __name__ == "__main__":
    line1 = "f 1/2/3"
    line2 = "f 1/2/3 4/5/6 7/8/9 10/11/12"
    print(parse_obj_face_line(line1))  # 输出: ['1/2/3']
    print(parse_obj_face_line(line2))  # 输出: ['1/2/3', '4/5/6', '7/8/9', '10/11/12']

其他语言实现思路

所有支持正则全局匹配的语言都可以用相同逻辑实现:

  1. 先调用全匹配接口校验输入行格式是否符合要求
  2. 格式合法的前提下,调用全局匹配接口提取所有符合\d+\/\d+\/\d+的子串即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:57:03