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

正则匹配:提取字符串中第二个|字符与数字1或2之间的内容

正确正则写法

方案1(支持可变长度回顾断言的引擎:Python re、.NET、Java 9+等)

直接匹配即可,不需要额外处理捕获组:

(?<=^(?:[^|]*\|){2})\s*[^12]+(?=\s*[12])

匹配结果会自动剔除前后空白,针对你给出的示例字符串,直接得到目标内容Pobiedziska Letnisko。

方案2(兼容所有正则引擎,含不支持可变长度回顾的场景:JavaScript、旧版Java等)

使用捕获组提取内容:

^(?:[^|]*\|){2}\s*([^12]+?)\s*[12]

取第一个捕获组的内容即为目标结果。


规则说明

  • ^(?:[^|]*\|){2}:从字符串开头匹配2次「非|字符 + |」的组合,准确定位到第二个|的位置
  • \s*:跳过|后的多余空白
  • [^12]+:匹配所有不是1、2的字符,也就是你需要提取的文本内容
  • (?=\s*[12]):正向限定匹配到紧邻1/2之前的位置,自动排除末尾的数字和空白
  • 你之前的写法问题在于只匹配了单个|作为前置条件,所以会从第一个|就开始匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:06:02