Ejemplo n.º 1
0
    public static void RegularExpress()
    {



        var d0 = "宏润建设集团股份有限公司(以下简称“公司”)于2014年1月7日收到西安市建设工程中标通知书,“西安市地铁四号线工程(航天东路站—北客站)土建施工D4TJSG-5标”项目由公司中标承建,工程中标价49,290万元。";
        var x0 = RegularTool.GetMultiValueBetweenMark(d0, "“", "”");

        var d1 = DateUtility.GetDate("河北先河环保科技股份有限公司董事会二○一二年十一月三十日");
        Console.WriteLine(d1);

        var d2 = "公司第五届董事会第七次会议审议通过了《关于公司与神华铁路货车运输有限责任公司签订企业自用货车购置供货合同的议案》,2014年1月20日,公司与神华铁路货车运输有限责任公司签署了《企业自用货车购置供货合同》。";
        var x2 = RegularTool.GetValueBetweenString(d2, "与", "签订");

        var s0 = "2010年12月3日,中工国际工程股份有限公司与委内瑞拉农业土地部下属的委内瑞拉农业公司签署了委内瑞拉农副产品加工设备制造厂工业园项目商务合同,与委内瑞拉农签署了委内瑞拉奥里合同。";
        var x = RegularTool.GetMultiValueBetweenString(s0, "与", "签署");

        var s1 = "收到贵州高速公路开发总公司发出的通知";
        var s2 = "接到贵州高速公路开发总公司发出的通知";
        var s3 = "收到贵州高速公路开发总公司发出的告知";
        var s4 = "接到贵州高速公路开发总公司发出的告知";
        Regex rg = new Regex("(?<=(" + "收到|接到" + "))[.\\s\\S]*?(?=(" + "通知|告知" + "))", RegexOptions.Multiline | RegexOptions.Singleline);

        Console.WriteLine(rg.Match(s1).Value);
        Console.WriteLine(rg.Match(s2).Value);
        Console.WriteLine(rg.Match(s3).Value);
        Console.WriteLine(rg.Match(s4).Value);

    }
Ejemplo n.º 2
0
    static string NormalizerFreezeYear(string orgString, string TitleWord)
    {
        orgString = orgString.Replace(" ", "");
        if (orgString.Equals("十二"))
        {
            return("12");
        }

        var x1 = Utility.GetStringAfter(orgString, "日起");
        int x2;

        if (int.TryParse(x1, out x2))
        {
            return(x2.ToString());
        }
        x1 = Utility.GetStringBefore(orgString, "个月");
        if (int.TryParse(x1, out x2))
        {
            return(x2.ToString());
        }

        x1 = RegularTool.GetValueBetweenString(orgString, "日起", "个月");
        if (x1.Equals("十二"))
        {
            return("12");
        }
        if (int.TryParse(x1, out x2))
        {
            return(x2.ToString());
        }

        if (orgString.Equals("十二"))
        {
            return("12");
        }
        if (orgString.Equals("十二个月"))
        {
            return("12");
        }
        if (orgString.Equals("1年"))
        {
            return("12");
        }
        if (orgString.Equals("3年"))
        {
            return("36");
        }
        return(orgString.Trim());
    }
Ejemplo n.º 3
0
    public static string NormailizeDate(string orgString, string keyword = "")
    {
        orgString = orgString.Trim().Replace(",", "");
        var NumberList = RegularTool.GetNumberList(orgString);

        if (NumberList.Count == 6)
        {
            String Year = NumberList[3];
            String Month = NumberList[4];
            String Day = NumberList[5];
            int    year; int month; int day;
            if (int.TryParse(Year, out year) && int.TryParse(Month, out month) && int.TryParse(Day, out day))
            {
                var d = new DateTime(year, month, day);
                return(d.ToString("yyyy-MM-dd"));
            }
        }
        if (NumberList.Count == 5)
        {
            if (orgString.IndexOf("年") != -1 && orgString.IndexOf("月") != -1 && orgString.IndexOf("日") != -1)
            {
                String Year = NumberList[0];
                String Month = NumberList[3];
                String Day = NumberList[4];
                int    year; int month; int day;
                if (int.TryParse(Year, out year) && int.TryParse(Month, out month) && int.TryParse(Day, out day))
                {
                    if (month <= 12 && day <= 31)
                    {
                        var d = new DateTime(year, month, day);
                        return(d.ToString("yyyy-MM-dd"));
                    }
                }
            }
        }

        if (orgString.Contains("年") && orgString.Contains("月") && orgString.Contains("月"))
        {
            String Year = Utility.GetStringBefore(orgString, "年");
            String Month = RegularTool.GetValueBetweenString(orgString, "年", "月");
            String Day = Utility.GetStringAfter(orgString, "月").Replace("日", "");
            int    year; int month; int day;
            if (int.TryParse(Year, out year) && int.TryParse(Month, out month) && int.TryParse(Day, out day))
            {
                var d = new DateTime(year, month, day);
                return(d.ToString("yyyy-MM-dd"));
            }
        }

        var SplitChar = new string[] { "/", ".", "-" };

        foreach (var sc in SplitChar)
        {
            var SplitArray = orgString.Split(sc);
            if (SplitArray.Length == 3)
            {
                String Year = SplitArray[0];
                String Month = SplitArray[1];
                String Day = SplitArray[2];
                int    year; int month; int day;
                if (int.TryParse(Year, out year) && int.TryParse(Month, out month) && int.TryParse(Day, out day))
                {
                    var d = new DateTime(year, month, day);
                    return(d.ToString("yyyy-MM-dd"));
                }
            }
        }

        return(orgString);
    }
Ejemplo n.º 4
0
    public static string GetRangeDateEndDate(string orgString, DateTime BaseDate, string format = "yyyy-MM-dd")
    {
        orgString = orgString.Replace(" ", "");
        orgString = orgString.Trim().Replace(",", String.Empty);
        //XXXX年XX月XX日 - XXXX年XX月XX日
        var NumberList = RegularTool.GetNumberList(orgString);

        if (NumberList.Count == 6)
        {
            String Year = NumberList[3];
            String Month = NumberList[4];
            String Day = NumberList[5];
            int    year; int month; int day;
            if (int.TryParse(Year, out year) && int.TryParse(Month, out month) && int.TryParse(Day, out day))
            {
                var d = DateUtility.GetWorkDay(year, month, day);
                return(d.ToString(format));
            }
        }

        //XXXX年XX月XX日 - XX月XX日
        if (NumberList.Count == 5)
        {
            if (orgString.IndexOf("年") != -1 && orgString.IndexOf("月") != -1 && orgString.IndexOf("日") != -1)
            {
                String Year = NumberList[0];
                String Month = NumberList[3];
                String Day = NumberList[4];
                int    year; int month; int day;
                if (int.TryParse(Year, out year) && int.TryParse(Month, out month) && int.TryParse(Day, out day))
                {
                    var d = DateUtility.GetWorkDay(year, month, day);
                    return(d.ToString(format));
                }
            }
        }
        //XXXX年XX月XX日 - XX日
        if (NumberList.Count == 4)
        {
            if (orgString.IndexOf("年") != -1 && orgString.IndexOf("月") != -1 && orgString.IndexOf("日") != -1)
            {
                String Year = NumberList[0];
                String Month = NumberList[1];
                String Day = NumberList[3];
                int    year; int month; int day;
                if (int.TryParse(Year, out year) && int.TryParse(Month, out month) && int.TryParse(Day, out day))
                {
                    var d = DateUtility.GetWorkDay(year, month, day);
                    return(d.ToString(format));
                }
            }
        }
        //XX月XX日
        if (NumberList.Count == 2)
        {
            if (orgString.IndexOf("月") != -1 && orgString.IndexOf("日") != -1)
            {
                if (BaseDate.Year == 0)
                {
                    return(orgString);
                }
                String Month = NumberList[0];
                String Day = NumberList[1];
                int    month; int day;
                if (int.TryParse(Month, out month) && int.TryParse(Day, out day))
                {
                    var d = DateUtility.GetWorkDay(BaseDate.Year, month, day);
                    return(d.ToString(format));
                }
            }
            if (orgString.IndexOf("年") != -1 && orgString.IndexOf("月") != -1)
            {
                /*
                 *  数据主要应用于“股东增减持”类型公告的抽取,对于“变动截止日期”字段,存在少量公告中只公布了月份,未公布具体的日期。对这种情况的处理标准为:
                 *  如果该月份在公告发布月份的前面,变动截止日期为该月份最后1个交易日;
                 *  如果该月份是公告发布的月份,变动截止日期为公告发布日期(见本次更新表格);
                 */
                String Year = NumberList[0];
                String Month = NumberList[1];
                int    year; int month;
                if (int.TryParse(Year, out year) && int.TryParse(Month, out month))
                {
                    //获得公告时间
                    if (year == BaseDate.Year && month == BaseDate.Month)
                    {
                        return(BaseDate.ToString(format));
                    }
                    var d = DateUtility.GetWorkDay(year, month, -1);
                    return(d.ToString(format));
                }
            }
            if (orgString.IndexOf("月") != -1)
            {
                String Year = NumberList[0];
                if (Year.Length != 4)
                {
                    return(orgString);
                }
                String Month = NumberList[1];
                int    year; int month;
                if (int.TryParse(Year, out year) && int.TryParse(Month, out month))
                {
                    var d = DateUtility.GetWorkDay(year, month, -1);
                    return(d.ToString(format));
                }
            }
        }
        //XXXX年XX月XX日
        if (orgString.Contains("年") && orgString.Contains("月") && orgString.Contains("月"))
        {
            String Year = Utility.GetStringBefore(orgString, "年");
            String Month = RegularTool.GetValueBetweenString(orgString, "年", "月");
            String Day = Utility.GetStringAfter(orgString, "月").Replace("日", String.Empty);
            int    year; int month; int day;
            if (int.TryParse(Year, out year) && int.TryParse(Month, out month) && int.TryParse(Day, out day))
            {
                var d = DateUtility.GetWorkDay(year, month, day);
                return(d.ToString(format));
            }
        }

        if (RegularTool.IsInt(orgString))
        {
            if (orgString.Length == 8)
            {
                String Year = orgString.Substring(0, 4);
                String Month = orgString.Substring(4, 2);
                String Day = orgString.Substring(6, 2);
                int    year; int month; int day;
                if (int.TryParse(Year, out year) && int.TryParse(Month, out month) && int.TryParse(Day, out day))
                {
                    if (year < 1900 || year > 2100)
                    {
                        var d = DateUtility.GetWorkDay(year, month, day);
                        return(d.ToString(format));
                    }
                }
            }
        }

        var SplitChar = new string[] { "/", ".", "-" };

        foreach (var sc in SplitChar)
        {
            var SplitArray = orgString.Split(sc);
            if (SplitArray.Length == 3)
            {
                String Year = SplitArray[0];
                String Month = SplitArray[1];
                String Day = SplitArray[2];
                int    year; int month; int day;
                if (int.TryParse(Year, out year) && int.TryParse(Month, out month) && int.TryParse(Day, out day))
                {
                    var d = DateUtility.GetWorkDay(year, month, day);
                    return(d.ToString(format));
                }
            }
        }
        return(orgString);
    }
Ejemplo n.º 5
0
    static string NormalizerFreezeYear(string orgString, string TitleWord)
    {
        orgString = orgString.Replace(" ", String.Empty);
        if (orgString.Equals("十二"))
        {
            return("12");
        }
        var x1 = Utility.GetStringAfter(orgString, "日起");
        int x2;

        if (int.TryParse(x1, out x2))
        {
            return(x2.ToString());
        }
        x1 = Utility.GetStringBefore(orgString, "个月");
        if (int.TryParse(x1, out x2))
        {
            return(x2.ToString());
        }
        x1 = RegularTool.GetValueBetweenString(orgString, "日起", "个月");
        if (x1.Equals("十二"))
        {
            return("12");
        }
        if (int.TryParse(x1, out x2))
        {
            return(x2.ToString());
        }
        if (orgString.Equals("十二"))
        {
            return("12");
        }
        if (orgString.Equals("十二个月"))
        {
            return("12");
        }
        if (orgString.Equals("1年"))
        {
            return("12");
        }
        if (orgString.Equals("3年"))
        {
            return("36");
        }
        //自2007年2月3日至2010年2月2日止
        var numbers = RegularTool.GetNumberList(orgString);

        if (numbers.Count == 6)
        {
            var sty = 0;
            var edy = 0;
            if (int.TryParse(numbers[3], out edy) && int.TryParse(numbers[0], out sty))
            {
                if (edy - sty == 1)
                {
                    return("12");
                }
                if (edy - sty == 3)
                {
                    return("36");
                }
                if (!Program.IsMultiThreadMode)
                {
                    Program.Logger.WriteLine("限售期确认:" + orgString);
                }
            }
        }

        return(orgString.Trim());
    }