tl;dr
我正在寻找一个只与以下字符串匹配的正则表达式:
+
(=)
+ (=)
#
动机:
在国际象棋中,一步棋可以是一盘棋,也可以是一盘棋。只要不是死对头,玩家可以在下一步棋后向对手提供平局。
我正在制作一个玩具项目,它解析按照FIDE规则编写的国际象棋游戏;它们指定使用以下后缀来指示前面的可能性:
check mate表示为+
;
(=)
.表示为
因此,以下是唯一有效的后缀:
抽签(nothing:移动不是支票,玩家不提供抽签(no check;a draw).
(=)
is offered)
+
(check;no draw offered)..
+ (=)
(check;A draw is offered).
#
)#
(check mate;由于游戏结束后不能提供抽签)。我正在努力将其转换为正则表达式。我想表达的是:
("+" (0 or 1 times) followed by "(=)" (0 or 1 times)) or ("#" (0 or 1 times))
我做了几次尝试,但都失败了。为了展示我的作品,我添加了这个,但它可能是垃圾:((\+{0,1}|(\+ (=)){0,1})|#){0,1}
https://stackoverflow.com/questions/53842631
复制相似问题