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

如何用RegEx检测货币子串在指定位置恰好出现两次?

正则表达式解决方案

直接给你能精准满足需求的正则:

^IR!(GBP|USD)!INDEX.\1$

新手友好的逐段拆解

  • ^:锁定字符串开头,确保整个内容必须从IR!开始,不能有多余前置字符;
  • IR!:固定匹配你说的首段内容,完全对应结构要求;
  • (GBP|USD):这是「捕获组」,专门抓取第二段的货币代码——只能是GBP或USD,抓取后会临时存储这个值;
  • !INDEX.:匹配第二段和第三段之间的分隔符!,再匹配固定的INDEX.前缀;
  • \1:引用刚才捕获组存的货币代码,意思是INDEX.后面必须跟和第二段完全一样的货币,保证该货币恰好出现两次;
  • $:锁定字符串结尾,确保INDEX.货币之后没有多余内容。

自动过滤无效情况的原因

  • IR!GBP!COUNTERPARTY.USD:第三段开头不是INDEX.,正则里的INDEX.匹配不上,直接排除;
  • IR!USD!INDEX.GBP:捕获组抓的是USD,但\1要求INDEX.后必须是USD,实际是GBP,不匹配,排除。

匹配的有效示例

  • IR!GBP!INDEX.GBP:第二段是GBP,INDEX.后也是GBP,完全符合“同一货币恰好出现两次且第二次在INDEX.后”的要求;
  • IR!USD!INDEX.USD:第二段是USD,INDEX.后也是USD,同样符合要求。

注:你提到的IR!GBP!INDEX.USD示例中,GBP和USD各出现一次,没有任何货币满足“恰好出现两次”的条件,所以按照你的需求描述,这个情况其实不应匹配。如果确实需要匹配这类场景,可能需要调整需求表述。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 16:08:12