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

如何让正则表达式停止重复匹配?提取指定子串遇难题求助

解决正则多次匹配问题,精准提取目标子串

你的原正则(\S+?\/\S+?)(\s|$)会匹配所有符合「非空格字符+斜杠+非空格字符」且后面跟空格或结尾的片段,所以会抓到aws-sdk-java/1.9.4、Linux/3.10.0-862.mt20190308.130.el7.x86_64等多个结果。给你两个针对性的解决方案:

  • 方案一:匹配字符串开头的目标(适合目标固定在开头的场景)
    使用正则:^(\S+\/\S+)
    解释:^锚定字符串开头,只从开头开始匹配,\S+\/\S+精准匹配开头的「名称/版本」结构,只会捕获到aws-sdk-java/1.9.4。

  • 方案二:精准匹配目标前缀(适合目标位置不固定,但明确是aws-sdk-java开头的场景)
    使用正则:(aws-sdk-java\/\S+)
    解释:直接指定前缀aws-sdk-java\/,后面跟着任意非空格字符,只会匹配到你要的目标子串,完全不会触发其他匹配。

测试用原字符串验证:

aws-sdk-java/1.9.4 Linux/3.10.0-862.mt20190308.130.el7.x86_64 Java_HotSpot(TM)_64-Bit_Server_VM/25.45-b02/1.8.0_45

用方案一或方案二的正则,都只会得到唯一的匹配结果aws-sdk-java/1.9.4。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 09:45:34