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

如何用正则表达式匹配字符串最后一个'-'和'~'之间的内容

解决方案

可以通过正则实现该需求,核心是匹配字符串中**最后一个-**之后的所有内容即可,符合要求的正则如下:

.*-\s*(.*)

正则逻辑说明

  • .* 贪婪匹配尽可能多的字符,直到定位到整个字符串的最后一个-
  • -\s* 匹配最后一个-以及它后面可选的空格
  • (.*) 捕获剩余的全部内容,最终捕获组1的结果就是你需要的To Win2 ~JIM FURYK

原正则错误原因

你之前使用的\-([^)]+\~)存在两个问题:

  1. [^)]+的匹配规则是排除)字符,和你的实际需求场景不匹配
  2. 正则会从第一个-就开始匹配,自然会把前面的To Win1等内容也包含到结果中,不符合你要取最后一段的要求

如果你的场景需要严格限定匹配范围是最后一个-到~以及后续内容,也可以使用如下写法,效果一致:

.*-\s*([^~]+~.*)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:15:00