亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

需要正則表達式邏輯來查找字符串

需要正則表達式邏輯來查找字符串

C#
阿波羅的戰車 2023-05-14 16:16:41
我想從一個句子中找到一個特定的字符串(單詞)。給定字符串:“在給定的健康計劃中,您的計劃名稱:Medical 和計劃類型:PPO,其生效日期:2019-01-01 以及承保價值 100 美元和 200 美元”。如果我通過"Plan Name:"那么我的輸出將是"Medical"。如果我通過"Plan Type:"那么我的輸出將是"PPO"。如果我通過"effective date:"那么我的輸出將是"2019-01-01"。如果我通過"coverage value"那么在這種情況下我需要兩個值。最小值"$100"和最大值"$200"。同樣,我需要給定句子中的電子郵件地址。在某些情況下,我只需要從給定的句子中提取日期、電子郵件或數值。在這種情況下,我沒有任何以前的值可以匹配。我需要一個涵蓋上述所有要求的正則表達式邏輯。
查看完整描述

1 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

嘗試以下:


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Text.RegularExpressions;


namespace ConsoleApplication118

{

    class Program

    {

        static void Main(string[] args)

        {

            string input = "In a given health plan your Plan Name: Medical and Plan Type: PPO whose effective date: 2019-01-01 and coverage value $100 and $200";

            string pattern = @"(?'key'\w+):\s+(?'value'[-\d\w]+)|(?'key'\w+)\s+(?'value'\$\d+\s+and\s+\$\d+)";


            MatchCollection matches = Regex.Matches(input, pattern);


            Dictionary<string, string> dict = matches.Cast<Match>()

                .GroupBy(x => x.Groups["key"].Value, y => y.Groups["value"].Value)

                .ToDictionary(x => x.Key, y => y.FirstOrDefault());


            foreach (Match match in matches)

            {

                Console.WriteLine("Key : '{0}', Value : '{1}'", match.Groups["key"].Value, match.Groups["value"].Value);

            }

            Console.ReadLine();

        }

    }

}


查看完整回答
反對 回復 2023-05-14
  • 1 回答
  • 0 關注
  • 135 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號