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

Python正则匹配以www开头且以空格结尾的子串问题求助

精准匹配目标URL子串的正则方案

问题分析

你当前的正则www\.\w+.*\s{1}失效的核心原因是:

  • .*是贪婪匹配,会尽可能匹配最多的字符,直到字符串末尾的空格才停止,导致匹配范围超出预期;
  • \s{1}仅限制单个空白,但贪婪模式下.*已经吃掉了中间所有内容,无法在目标位置终止。

解决方案

使用非贪婪匹配+正向预查来精准定位终止边界,正则表达式如下:

www\..*?(?= \.)

正则说明

  • www\.:匹配目标子串的固定开头;
  • .*?:非贪婪模式匹配任意字符(包括换行符,需开启正则的DOTALL模式,比如Python中加re.DOTALL参数,或在正则开头加(?s)),会尽可能少地匹配字符,直到遇到后续的终止条件;
  • (?= \.):正向预查,匹配「空格+句号」的前置位置,确保匹配范围截止到目标内容的末尾,不会包含后续的 .。

测试验证

针对你的示例字符串:

available at: www.bankofengland.co.uk/prudential-regulation/\ntransforming-data-collection .\n40. News release ‘Data Collection Transformation Plan’, February 2021: www.bankofengland.co.uk/\nnews/2021/february/data-collection-transformation-plan .\n41. Under Section 166 of the Financial Services and Markets Act 2000.\n42. PRA Letter ‘Letter from

使用该正则会精准匹配到两个目标子串:

  1. www.bankofengland.co.uk/prudential-regulation/\ntransforming-data-collection
  2. www.bankofengland.co.uk/\nnews/2021/february/data-collection-transformation-plan

注意事项

如果你的正则引擎默认不支持.匹配换行符,需要手动开启DOTALL模式:

  • Python:re.findall(r'www\..*?(?= \.)', input_str, re.DOTALL)
  • JavaScript:在正则后加s标志,如/www\..*?(?= \.)/gs

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:45:45