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

如何使正则表达式(?<=NASDAQ:).*查询返回无重复的唯一匹配结果

问题原因

你当前使用的正则(?<=NASDAQ:).*会匹配所有带有NASDAQ:前缀的后续整行内容,若开启了全局匹配(g标志),所有命中项都会被返回,包含重复的股票代码值。同时.*是贪婪匹配,会匹配到行尾所有内容,也可能因为匹配范围过大引入重复误判。

解决方案

方案1:仅保留第一个匹配结果

如果只需要获取全文第一个符合要求的股票代码,直接关闭正则的**全局匹配(g标志)**即可,正则匹配到第一个结果后会直接停止,不会返回后续重复内容。

方案2:匹配所有不重复的股票代码

如果需要提取全文所有不重复的股票代码,相同值仅保留一次,推荐两种实现方式:

  • 最简稳妥方案:先将原正则优化为(?<=NASDAQ:)\w+(精准匹配连续字母数字组成的股票代码,避免.*匹配多余内容),开启全局匹配拿到所有结果后,将结果存入Set自动去重,不需要编写复杂正则逻辑。
  • 纯正则实现方案:使用带回溯校验的正则(?<=NASDAQ:)(\w+)(?!.*\1),该正则会匹配NASDAQ:后的股票代码,且仅当后续文本没有出现过相同代码时才命中,保证每个代码仅返回一次。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:36:04