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

如何用Python正则捕获LOCATION后的完整目标字符串?

解决方案

针对你的需求,要匹配LOCATION后跟随的无空格、以数字开头和结尾的完整字符串(同时保留LOCATION本身),可以用以下方案实现:

正则表达式

LOCATION\s+\d[\d./-]*\d

各部分说明

  • LOCATION:精准匹配固定前缀文本
  • \s+:匹配一个或多个连续空白字符(空格、制表符等)
  • \d:匹配目标位置串的开头数字,满足“以数字开头”的要求
  • [\d./-]*:匹配位置串中间的合法字符(数字、点、斜杠、横杠),*表示允许这些字符出现0次或多次
  • \d:匹配目标位置串的结尾数字,满足“以数字结尾”的要求

Python代码示例

import re

target_text = "LOCATION   03-ED-50-39.5/48.7  DIVISION HIGHWAY ROAD   44 CONTRACT ITEMS"
# 匹配包含LOCATION的完整目标段
pattern = r"LOCATION\s+\d[\d./-]*\d"
match_result = re.search(pattern, target_text)

if match_result:
    print(match_result.group())  # 输出:LOCATION   03-ED-50-39.5/48.7

如果只需要捕获LOCATION后面的位置串(不带LOCATION前缀),可以给位置串部分加分组:

LOCATION\s+(\d[\d./-]*\d)

之后通过match_result.group(1)就能获取到03-ED-50-39.5/48.7。

原正则的问题

你之前写的LOCATION\s+(\d+)只能匹配LOCATION后的第一个连续数字序列(比如示例中的03),因为\d+会在遇到非数字字符(比如-)时停止匹配,无法覆盖完整的位置串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 00:45:45