【发布时间】:2014-07-22 13:09:30
【问题描述】:
我想编写一个名为 IsStrValid 的 F#.NET 布尔函数,使用正则表达式来确定给定字符串 s 是否符合以下规则:
-
s长度为 4 个字符 - 第一个和第三个字符是 A、B 或 C
- 第二个字符是 1、2 或 3
- 第 4 个字符是 1、2 或 3,除非第 1 个和第 3 个字符相同 - 那么第 4 个字符不能与第 2 个相同。
例如:
IsStrValid "A3B3" //true
IsStrValid "A3A3" //false
这就是我已经走了多远;卡在条件部分(???):
let IsStrValid (s : string) =
Regex.IsMatch(s, @"^([ABC])([123])([ABC])(?(???)[123]|[???])$")
【问题讨论】:
-
如果没有正则表达式,这可能会容易得多。
标签: .net regex f# conditional