首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于简单FEN验证的Regex

用于简单FEN验证的Regex
EN

Stack Overflow用户
提问于 2022-11-29 23:32:30
回答 2查看 32关注 0票数 1

我想验证一个国际象棋字符串,我正在为它的Regex工作。我只想实现非常简单的验证。下面是我希望与我的正则表达式相匹配的规则:

  • 准确的7 "/“字符
  • 字符串的开始和结束不能是"/“
  • 在斜杠之间,它必须是1-8的数字,或者字母PNBRQK大写或小写。

匹配示例

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR

非匹配示例

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR/

/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR/

rnbqkbnr/pppppppp/8/8/8/10/PPPPPPPP/RNBQKBNR

rnbqkbnr/Z/8/8/8/8/PPPPPPPP/RNBQKBNR

目前,我已经能够使用以下regex实现字符串中任何位置的确切7 "/“:

/^(?:[^\/]*\/){7}[^\/]*$/gm

我不知道如何实现其余部分,因为RegEx不是我的强项。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-29 23:51:10

代码语言:javascript
复制
/^([1-8PNBRQK]+\/){7}[1-8PNBRQK]+$/gim

/gim = global,case Imultiline。

我在https://regexr.com/上做了上面的工作,这是我最喜欢的解决正则表达式问题的地方之一(但我知道网上还有很多其他好的资源)。

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2022-11-29 23:47:48

这应该可以做到:(通过所有的测试)

代码语言:javascript
复制
/^(?:(?:[PNBRQK]+|[1-8])\/){7}(?:[PNBRQK]+|[1-8])$/gim

你所需要的只是对你所追求的字符使用正匹配,而不是“不斜杠”。关键添加是一个或多个PNBRQK或1-8之间的数字的非捕获组。在表达式末尾重复相同的组。

哦,我还为不区分大小写的匹配添加了i标志。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74621387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档