如何编写一个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

如何编写一个Regex格式来接受查询字符串和日期

您使用的正则表达式很好,只是不需要转义"。"

正则表达式可以是

/'?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;