我想创建一个正则表达式,其中一个组的出现取决于是否找到另一个特定组 . 我认为这更容易用一个例子来说明!
我想允许两个模式,由这两个例子说明: JsJh
, JJ
. 这是不允许的: JsJs
, JsJ
, JQ
.
因此,如果用户在第一个大写字母之后输入一个小写字母,正则表达式会在第二个大写字母之后输入另一个小写字母 - 但它不应该与第一个大写字母相同!
我匹配第一个(Js)像这样: ([123456789TJQKA]){1}([dsch]?){1}
第二个大写字母匹配 (\\2)
.
现在,我似乎无法找到最后一封小写字母的解决方案 . 我可以得到小写字母(这不是我想要的),但如果它存在,我如何排除最后一组中的第一个字母,仍允许(并期待)剩下的三个中的一个小信吗?
1 回答
为什么使用正则表达式来实现纸牌游戏的逻辑?看起来很疯狂......不过它可以做到!
这是一个测试,以验证它是否正常工作(并且它还记录了我对您在问题中未涉及的特殊情况的假设):