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

求用于简易国际象棋FEN字符串验证的正则表达式

国际象棋FEN字符串简易验证正则方案

直接给出满足所有要求的正则表达式:

/^[PNBRQKpnbrqk1-8]+(?:\/[PNBRQKpnbrqk1-8]+){7}$/

规则对应拆解:

  • 恰好7个"/":正则中的(?:\/[PNBRQKpnbrqk1-8]+){7}是一个非捕获组,重复7次「斜杠+合法段」的结构,加上开头的[PNBRQKpnbrqk1-8]+,整体形成8个由7个斜杠分隔的合法段,正好对应FEN的8行结构。
  • 首尾不能为"/":开头直接限定为合法字符集[PNBRQKpnbrqk1-8]+,确保首字符不是斜杠;结尾以合法字符集收尾,最后一段没有尾随斜杠,自然避免了末尾出现斜杠的情况。
  • 斜杠间内容合法:每一段的字符集[PNBRQKpnbrqk1-8]严格限定为:
    • 大小写的P(兵)、N(马)、B(象)、R(车)、Q(后)、K(王)
    • 1-8的数字(代表对应数量的空位)
      这样就排除了Z这类非法字符,以及10这种多位数(因为正则匹配单个合法字符,10会被识别为1和0,其中0不在合法字符集内,所以会匹配失败)。

测试示例:

  • 匹配:rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR
  • 不匹配:
    • /rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR(开头带斜杠)
    • rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR/(末尾带斜杠)
    • rnbqkbnr/pppppppp/10/8/8/8/PPPPPPPP/RNBQKBNR(含非法数字10)
    • rnbqkbnr/pppppppp/Z/8/8/8/PPPPPPPP/RNBQKBNR(含非法字符Z)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:20:47