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

正则表达式需求:匹配Landgang后m2前的目标数字

解决正则匹配问题

原正则(?<=landgang\s)(\d+)(?=\s*m2)失效的核心原因:它要求目标数字必须紧跟landgang,且数字与m2之间只能有空白字符,但你的示例文本中landgang和m2之间还有metros tetro dento 12等非空白内容,导致匹配逻辑不成立。

针对需求的正则方案

根据你「匹配landgang之后、m2之前的数字(含2/2这类带斜杠的格式)」的需求,推荐以下正则:

(?<=landgang).*?(\d+(?:\/\d+)?).*?(?=m2)

正则逻辑拆解

  • (?<=landgang):正向回溯断言,限定匹配范围起始于landgang之后
  • .*?:非贪婪匹配任意字符,避免跳过目标数字直接匹配到m2前的最后一个数字
  • (\d+(?:\/\d+)?):捕获组,匹配纯数字或数字/数字格式的内容(如果不需要斜杠,可简化为\d+)
  • .*?(?=m2):非贪婪匹配到m2之前的所有内容,确保目标数字处于landgang到m2的区间内

测试验证

用你的示例文本测试:

kolko 12/43 4:34, tetro gamm m2 landgang 2/2 metros tetro dento 12 343m2 psi 23

该正则会准确捕获到2/2,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 13:03:11