如何编写一个Regex格式来接受查询字符串和日期
本文关键字:查询 字符串 日期 格式 Regex 何编写 一个 | 更新日期: 2023-09-27 18:14:08
我有一个带有日期时间值的查询字符串,输入类似"?sincemodified=2013-04-02T08:34:12Z"。
如何写一个可选的Regex格式接受上面?
我写了下面的内容,但是失败了:
Regex.Match(@"?sincemodified=2013-04-02T08:34:12Z", @"^['?sincemodified='.*]?$").Success
您使用的正则表达式很好,只是不需要转义"。"
正则表达式可以是
/'?sincemodified=.*/
我不认为,你需要使用正则表达式。
就用这个,
Request.QueryString["sincemodified"];
另一个选择是使用 httutility . parsequerystring (),
HttpUtility.ParseQueryString("?sincemodified=2013-04-02T08:34:12Z").Get("sincemodified");
依我看,REGEX不是解析日期值的好主意,而是使用DateTime.TryParse
,如:
if(Request.QueryString["sincemodified"] != null)
{
DateTime dt;
if(DateTime.TryParse(Request.QueryString["sincemodified"], out dt)
{
//valid date
}
}
^:表示开始,*:任何字符,$:表示文本结束,
所以你不需要指定^…*$说你想要什么是在开始,只是^…是足够的,所以:
Regex.Match(@"?sincemodified=2013-04-02T08:34:12Z", @"^'?sincemodified=").Success;
将会工作
如果你想要的东西不是空的,这里有一个改进:Regex.Match(@"?sincemodified=2013-04-02T08:34:12Z", @"^'?sincemodified=(?!'s*$).+").Success;