Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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# .NET正则表达式-如何查找术语;“被包围”;有特色_C#_Regex - Fatal编程技术网

C# .NET正则表达式-如何查找术语;“被包围”;有特色

C# .NET正则表达式-如何查找术语;“被包围”;有特色,c#,regex,C#,Regex,我有以下几行: MIAU,GD & LP MIAU,GDMB & LP 我需要找到匹配规则的第一行:仅当“GFD”和“LP”存在时 目前我有以下正则表达式: new Regex(@"^(?=.*\bGD\b)(?=.*\bLP\b).*$", RegexOptions.Compiled); 这两条线都匹配。 如何通过忽略前面和后面的字母字符从匹配中排除第二行?您需要RegexOptions。多行修饰符并在$之前添加\r?,因为多行模式下的$与回车符不匹配: var text

我有以下几行:

MIAU,GD & LP
MIAU,GDMB & LP 
我需要找到匹配规则的第一行:仅当“GFD”和“LP”存在时

目前我有以下正则表达式:

new Regex(@"^(?=.*\bGD\b)(?=.*\bLP\b).*$", RegexOptions.Compiled);
这两条线都匹配。
如何通过忽略前面和后面的字母字符从匹配中排除第二行?

您需要
RegexOptions。多行
修饰符并在
$
之前添加
\r?
,因为多行模式下的
$
与回车符不匹配:

var text = "A #GFD/ LP\r\nA \"GFDSC LP ";
var pattern = @"^(?=.*\bGFD\b)(?=.*\bLP\b).*\r?$";
var result = Regex.Matches(text, pattern, RegexOptions.Multiline)
         .Cast<Match>()
         .Select(p => p.Value)
         .ToList();
foreach (var s in result)
    Console.WriteLine(s); // => A #GFD/ LP
var text=“A#GFD/LP\r\nA\”GFDSC-LP”;
变量模式=@“^(?=.*\bGFD\b)(?=.*\bLP\b)。*\r?$”;
var result=Regex.Matches(文本、模式、RegexOptions.Multiline)
.Cast()
.选择(p=>p.Value)
.ToList();
foreach(结果中的var s)
Console.WriteLine;//=>A#GFD/LP

请参见

我看不到您的正则表达式与任何一行都不匹配。在这里,。如果您使用的是
RegexOptions.Multiline
,它将匹配它应该匹配的内容(您可以在
\r?
之前添加
$
,因为多行模式下的
$
与回车符不匹配)。您是否使用逐字字符串文字(
“…regex…”
)?请出示代码。@MattBurland我已经更新了问题,谢谢你指出out@stribizhev是的,我使用逐字记录,我已经更新了您需要的问题
RegexOptions.Multiline