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

求正则表达式:确保多行字符串仅含一个x(仅勾选一个复选框)

匹配多行字符串中仅含一个x的正则表达式

核心正则表达式:

^[^x]*x[^x]*$

正则解析

  • ^:锚定整个字符串的起始位置
  • [^x]*:匹配任意数量(包括0个)的非x字符,包含换行符,覆盖x之前的所有内容
  • x:精确匹配唯一的目标字符x
  • [^x]*:匹配任意数量的非x字符,覆盖x之后的所有内容
  • $:锚定整个字符串的结束位置

这个正则的逻辑是强制整个字符串从开头到结尾,只能出现一次x,其余位置都不能有x。

适配场景说明

  1. 大小写敏感调整:上述正则只匹配小写x,如果需要支持大小写不敏感的匹配,调整为:

    ^[^xX]*[xX][^xX]*$
    

    同时在正则引擎中启用忽略大小写模式(或直接在正则末尾加i标记,比如/^[^xX]*[xX][^xX]*$/i)

  2. 不同引擎的匹配注意:

    • Python中需使用re.fullmatch()方法,确保匹配整个字符串而非部分内容
    • JavaScript中由于[^x]本身支持匹配换行符,无需额外启用dotAll模式即可正常处理多行文本

验证示例

针对你给出的示例:

  • 符合要求的字符串:

    [x] Patch
    [] Minor
    [] Major
    

    代入正则会完全匹配,返回有效结果。

  • 不符合要求的字符串:

    [x] Patch
    [x] Minor
    [] Major
    

    由于存在两个x,正则无法匹配整个字符串,返回无效结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 09:27:14