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

如何编写正则表达式匹配不同场景下字符X前后的指定内容

正则表达式优化解决方案

你当前使用的/[Xx]([\s\S]*)$/gm仅支持匹配X之后的全量内容,无法覆盖X前内容匹配、X前冗余空格/L字符过滤的需求,可按你的匹配目标选择以下优化后的正则:

场景1:匹配X之前的数值(适配需求2、3)

使用正则:/([\d.]+)\s*(?:L\s*)?(?=[xX])/gm
匹配规则说明:

  • 核心捕获组([\d.]+)只提取数字、小数点组成的有效数值
  • \s*(?:L\s*)?是非捕获组,自动跳过数值到X之间可能存在的空格、可选的L字符,不会将这部分内容计入匹配结果
  • (?=[xX])是正向预查,仅匹配紧邻X/x前的内容,不会误匹配其他位置的数值
    测试效果:
  • 输入25.250755 X 6.62 ,匹配结果为25.250755
  • 输入25.250755 L X 6.62,匹配结果为25.250755
  • 输入25.250755L X 6.62,匹配结果为25.250755

场景2:匹配X之后的内容(适配需求1)

如果需要获取X之后的完整内容,使用正则:/(?<=[xX])\s*(.*)$/gm
如果仅需要获取X之后的数值部分,使用正则:/(?<=[xX])\s*([\d.]+)/gm
匹配规则说明:

  • (?<=[xX])是反向预查,仅匹配紧邻X/x之后的内容,不会匹配到X本身
  • 开头的\s*自动跳过X后的前置空格
    测试效果:
  • 输入6.62 X 25.250755 L,完整内容匹配结果为25.250755 L,数值匹配结果为25.250755

场景3:单次匹配同时获取X两侧的内容

使用正则:/([\d.]+)\s*(?:L\s*)?[xX]\s*(.*)/gm
匹配结果中分组1为X前的数值,分组2为X后的完整内容,按需提取即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:48:03