RegEx使我的头部受伤,任何人都可以为我解决这个问题吗?
在c#中我打电话给以下人并且期待是真的,我必须承认我一周都在正则表达式。
还简要解释(&)之前的()和\的影响。
var isValid = Regex.IsMatch(
"from=20100101&to=20121231",
"^(from=)([0-9]{6})\\&to=([0-9]{6})$"
);
答案 0 :(得分:3)
试试这个:
^from=(\d{8})&to=(\d{8})$
答案 1 :(得分:2)
这将返回true
var isValid = Regex.IsMatch("from=20100101&to=20121231",@"^from=[0-9]{8}&to=[0-9]{8}$");
\
用于转义其他特殊字符。因此,它的字面值而不是正则表达式语言中的含义。例如,\.
表示匹配点,而.
本身是通配符,表示“匹配除\ n之外的任何单个字符。”
(subexpression)
称为分组,捕获与内部子表达式匹配的所有内容,并为其指定从零开始的序数。可以使用此语法\0
分配的序号引用此匹配
论点很广泛,有很多变化
你可以从这个reference on MSDN
请注意。我已经纠正了你删除分组的模式,\& (&符号不是特殊字符)并将数字匹配扩展到8位数 (如果您的日期仅由6位数字组成,那么您可以设置{6,8}意味着最小6位,最多8位数字)
答案 2 :(得分:1)
您已使用{6}要求连续6位数字。但是,你真的在寻找8,yyyymmdd。