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