.Net Reg Ex完全匹配

时间:2012-08-24 22:28:21

标签: .net regex

RegEx使我的头部受伤,任何人都可以为我解决这个问题吗?

在c#中我打电话给以下人并且期待是真的,我必须承认我一周都在正则表达式。

还简要解释(&)之前的()和\的影响。

var isValid = Regex.IsMatch(
     "from=20100101&to=20121231",
     "^(from=)([0-9]{6})\\&to=([0-9]{6})$"
);

3 个答案:

答案 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。