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

如何匹配指定区域含特定单词的字符串片段?正则表达式求助

正则匹配解决方案

问题分析

你用的正则((?=top).*radio\s\d{2}\s)\/\D*bottom\s\d{2}无法匹配第二个字符串,核心问题是它强制要求radio后面直接跟空格加两位数字,但第二个字符串里radio后是top而非数字,导致结构匹配失败。

正确正则表达式

要实现/之前同时包含top和radio(顺序不限),且仅匹配该区域内的两个词,同时匹配/后的bottom+数字结构,可用以下正则:

^(?=.*top)(?=.*radio).*\s\d{2}\s\/\D*bottom\s\d{2}$

正则说明

  • ^:匹配字符串开头
  • (?=.*top):正向前瞻,确保字符串中存在top
  • (?=.*radio):正向前瞻,确保字符串中存在radio
  • .*\s\d{2}\s:匹配任意内容,直到空格+两位数字+空格的结构(对应示例中的数字部分)
  • \/:匹配分隔符/
  • \D*bottom\s\d{2}:匹配/后的非数字内容,接着是bottom+空格+两位数字
  • $:匹配字符串结尾

如果需要严格限制top和radio仅出现在/之前(防止/后出现这两个词时误匹配),可以用带负向前瞻的版本:

^(?=.*top)(?=.*radio)(?!.*\/.*top)(?!.*\/.*radio).*\s\d{2}\s\/\D*bottom\s\d{2}$

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:05:55