需要C#help中的正则表达式
我当前的正则表达式看起来有点像这样:需要C#help中的正则表达式,c#,regex,C#,Regex,我当前的正则表达式看起来有点像这样: (?<name>[\w\-"]+)[ \n]+MODULE-IDENTITY (?[\w\-“]+)[\n]+模块标识 它搜索MODULE-IDENTITY,然后返回前面的单词(带-和“符号”)。现在我想添加一些东西,检查MODULE-IDENTITY之前的单词是否为,比如DOG,它不会导致匹配 有人能帮忙吗?关于这个具体的例子: (?<name>[\w\-"]+)(?<!DOG)[ \n]+MODULE-IDENTITY
(?<name>[\w\-"]+)[ \n]+MODULE-IDENTITY
(?[\w\-“]+)[\n]+模块标识
它搜索MODULE-IDENTITY,然后返回前面的单词(带-和“符号”)。现在我想添加一些东西,检查MODULE-IDENTITY之前的单词是否为,比如DOG,它不会导致匹配
有人能帮忙吗?关于这个具体的例子:
(?<name>[\w\-"]+)(?<!DOG)[ \n]+MODULE-IDENTITY
(?[\w\-“]+)(?)?
这将匹配
测试
模识别
但不是
狗
MODULE-IDENTITY这是排除单词dog
(?<name>\b(?!\bdog\b)[\w\-"]+\b+)[ \n]+MODULE-IDENTITY
在给出模块标识之前,编写正则表达式以检查任何单词的方法如下:
但是,您需要进行IsMatch检查,如:
System.Text.RegularExpressions.Regex.IsMatch(s,sPattern,System.Text.RegularExpressions.RegexOptions.IgnoreCase),其中s是您的输入字符串,sPattern是您的正则表达式,最后一个参数是进行匹配的一些选项。您能给出一个文本文件的真实示例以及您想要的结果吗?
string strRegex = @"(?<name>\b(?!\bdog\b)[\w\-""]+\b+)[ \n]+MODULE-IDENTITY";
Regex myRegex = new Regex(strRegex, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant);
string strTargetString = @"hi dog MODULE-IDENTITY test";
foreach (Match myMatch in myRegex.Matches(strTargetString))
{
if (myMatch.Success)
{
// in this case no matches found because of "dog" word in input
}
}