一千萬個為什麽

搜索

如何確定字符串中是否有日期與不同的日期格式?


我需要檢查字符串中是否有日期。

FUTIDX 26FEB2009 NIFTY 0 -- There is date in the string.

FUTIDX MINIFTY 30 Jul 2009 -- There is date in the string.

FUTSTK ONGC 27 Mar 2008 -- There is date in the string.

我怎樣才能做到這一點 ?

最佳答案

@danish告訴你的是你需要試用RegEx(或正則表達式)。那裏有很多網站 - MSDN ; 實踐解析; 學習正則表達式 - 僅舉幾例。

如果您只期望2種特定格式的日期,那麽我們只需要匹配2種模式。您的示例數據:

FUTIDX 26FEB2009 NIFTY 0 - 字符串中有日期。

     

FUTIDX MINIFTY 2009年7月30日 - 字符串中有日期。

     

FUTSTK ONGC 2008年3月27日 - 字符串中有日期。

為我們提供了兩種模式:

  1. <�代碼> ddMMMyyyy </代碼>
  2. dd Mmm yyyy

以下示例僅以簡短形式查找一個月。這應該足以幫助你開始。

using System;
using System.Text.RegularExpressions;

namespace regexmonthtest
{
    class MainClass
    {

           //in your class, define 2 string patterns
        static string pattern = @"(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)";

        public static void Main (string[] args)
        {
            Console.WriteLine (HasDate("FUTIDX 26FEB2009 NIFTY 0"));
            Console.WriteLine (HasDate("FUTSTK MINIFTY 30 Jul 2009"));
            Console.WriteLine (HasDate("FUTIDX 26api1234 NIFTY 0"));
        }


        public static bool HasDate (string textIn)
        {
            textIn = textIn.ToLower();
            Console.Write(textIn + '\t');

            return (Regex.Match(textIn, pattern).Success);
        }
    }
}

輸出:

futidx 26feb2009 nifty 0 True
  futstk minifty 30 jul 2009 True
  futidx 26api1234 nifty 0 False

轉載註明原文: 如何確定字符串中是否有日期與不同的日期格式?

猜你喜歡