Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#中需要正则表达式来确定N个单词中是否有多个单词_C#_.net_Regex - Fatal编程技术网

C#中需要正则表达式来确定N个单词中是否有多个单词

C#中需要正则表达式来确定N个单词中是否有多个单词,c#,.net,regex,C#,.net,Regex,我认为正则表达式应该能够解决以下问题。我需要确定是否在字符串中找到以下模式。该模式从三个单词中的一个开始,必须紧跟其后(但不是立即紧跟其后)另外两个单词,并且该模式必须在N个单词的总长度内找到 例如,第一个词为“严重”,最后两个词为“主动脉”和“狭窄”,N=6。句子#1应该匹配,因为所有三个单词都在五个单词内,而#2不应该匹配,因为所有三个单词都在十个单词内,大于N=6 有严重至严重的主动脉狭窄 他入院时严重过敏,但被诊断为主动脉狭窄 有什么想法吗 提前谢谢 Regex monkey = new

我认为正则表达式应该能够解决以下问题。我需要确定是否在字符串中找到以下模式。该模式从三个单词中的一个开始,必须紧跟其后(但不是立即紧跟其后)另外两个单词,并且该模式必须在N个单词的总长度内找到

例如,第一个词为“严重”,最后两个词为“主动脉”和“狭窄”,N=6。句子#1应该匹配,因为所有三个单词都在五个单词内,而#2不应该匹配,因为所有三个单词都在十个单词内,大于N=6

  • 有严重至严重的主动脉狭窄

  • 他入院时严重过敏,但被诊断为主动脉狭窄

  • 有什么想法吗

    提前谢谢

    Regex monkey = new Regex(@".*[severe ][\b\w*\b ]{0,3}[aortic stenosis].*");
    

    我的正则表达式有点生疏,但我认为这应该可以使用。

    我建议在c#中使用正则表达式的单词字符功能。比如说

        static void Main(string[] args)
        {
            String example1 = "There was severe to critical aortic stenosis.";
            String example2 = "He had a severe allergy when admitted but was diagnosed with aortic stenosis.";
            // {m,n} words
            Regex reg = new Regex("severe (\\w* ){0,6}aortic stenosis");
            Console.WriteLine(reg.ToString());
    
            Match m1 = reg.Match(example1);
            Match m2 = reg.Match(example2);
    
            Console.WriteLine(m1.Success);
            Console.WriteLine(m2.Success);
    
            Console.ReadLine();
        }
    

    你只需要正则表达式吗?或者你也需要正则表达式的C#代码吗?只要正则表达式就可以了,谢谢