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

求助:编写正则表达式(Regex)匹配目标字符串指定内容

Hey there! 我帮你整理了针对这个字符串的正则匹配方案,结合你需要提取指定加粗信息的需求,下面分情况详细说明:

正则匹配方案及实操说明

首先把你提供的目标字符串贴出来方便对照:

"FM 2222 RD / RIVER PLACE BLVD","0:",,"18:","00"," 2008-08-14 "," CRASH/LEAVING THE SCENE ","30.39452568","(30.39452568-97.84551164)","-97.84551164","18:00:00","4","2008-08-14 18:00:00-06:00","20085043619"

一、针对不同目标的正则实现

假设你需要提取的核心加粗信息包括:事故类型(CRASH/LEAVING THE SCENE)、事故日期、经纬度坐标、事故编号,下面给出精准匹配的正则:

1. 单独提取事故类型

如果只需要抓取事故类型,这个正则足够精准:

" (\w+/\w+ THE \w+) "
  • 说明:它专门匹配被双引号+空格包裹的、符合[单词]/[单词] THE [单词]格式的内容,刚好命中你的事故类型。要是以后事故类型有小变化,也可以换成更通用的" ([^"]+) ",然后通过字段位置(第7个字段,从0开始数是索引6)来定位。

2. 一次性提取多个核心字段

因为你的字符串是逗号分隔的结构化数据,用正则批量捕获多个字段也很方便,这个正则可以一次性抓日期、事故类型、经纬度、编号:

"[^"]*","[^"]*","[^"]*","[^"]*","[^"]*"," ([\d-]+) "," ([^"]+) ","([\d.-]+)","[^"]*","([\d.-]+)","[^"]*","[^"]*","[^"]*","([\d]+)"
  • 捕获组对应内容:
    • 第1组:2008-08-14(事故日期)
    • 第2组:CRASH/LEAVING THE SCENE(事故类型)
    • 第3组:30.39452568(纬度)
    • 第4组:-97.84551164(经度)
    • 第5组:20085043619(事故编号)

3. 提取带括号的完整坐标对

如果需要那个带括号的坐标字符串(30.39452568-97.84551164),用这个正则:

\(([\d.-]+)-([\d.-]+)\)
  • 说明:它匹配括号包裹的、用减号分隔的两个数字串,捕获组1是纬度,捕获组2是经度,能精准拆分坐标。

二、实用小建议

  1. 其实如果只是偶尔处理这类数据,不用正则反而更简单——直接按逗号分割字符串,然后取对应索引的字段就行(比如Python里用your_string.split(','),索引6是事故类型,索引5是日期),不用记复杂的正则语法。
  2. 要是必须用正则,建议先找个在线正则工具测试下匹配结果是否符合预期,毕竟原字符串里有空字段(比如第三个字段是""),得确保正则能兼容这类情况。
  3. 如果以后字段位置有变化,记得调整正则里"[^"]*"的数量(每个"[^"]*"对应一个逗号分隔的字段)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:12:54