正则表达式自定义搜索查询日期范围

时间:2019-01-30 14:05:57

标签: c# regex asp.net-mvc

我有一个带有搜索页面的MVC.net Web应用程序。我希望用户能够按给定年份(例如, 1979年。但是我知道一些高级用户会想要搜索日期范围等。我想我可以通过允许用户键入以下内容来添加一些额外的功能,而不是重新设计搜索表单:

  • 1979 仅记录1979
  • 从1979年开始的
  • 1979 +
  • 1979-从1979年开始的所有年份
  • 1979年至1980年之间的
  • 1979-1985

我可以处理搜索条件,但是我想知道从他们输入的字符串中找出他们想要采取的行动的最佳方法是什么?请注意,他们也可以将搜索字符串留空,因为页面上还有其他标准。

我在考虑一些正则表达式测试,但是正确的正则表达式模式是什么?我尝试创建一些,但是我做不到。

if (Query == Regex for single year)
{
     SQL = SELECT WHERE Year = Query
}
else if (Query = regex for greater than year) {
     SQL = SELECT WHERE Year >= Query
}
else if (Query = regex for less than year) {
    SQL = SELECT WHERE Year <= Query
}
else if (query = regex for date range) {
    SQL = SELECT WHERE Year >= Query Part A AND Year <= Query Part B
}
else { ignore }

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题:

([1-9][0-9]{3})([+-]?)([1-9][0-9]{3})?