C#.NET中字符串中新行(str)的正则表达式

C#.NET中字符串中新行(str)的正则表达式,c#,.net,regex,C#,.net,Regex,我已经找遍了,需要帮助。我对正则表达式还不熟悉,并且已经设法从一个多行字符串中提取单词,但不是一整行。 我将文本拉入字符串,但我无法找到抓住下一行 示例字符串有多行(字符串多行): 我需要抓取“用户信息”一行后面的文本“域\用户名” 我已经尝试了许多正则表达式的组合,但无法使其工作。例如: string topLine = "Authentication information"; label.Text = Regex.Match(multipleLines, topLine + "(.

我已经找遍了,需要帮助。我对正则表达式还不熟悉,并且已经设法从一个多行字符串中提取单词,但不是一整行。 我将文本拉入字符串,但我无法找到抓住下一行

示例字符串有多行(字符串多行):

我需要抓取“用户信息”一行后面的文本“域\用户名”

我已经尝试了许多正则表达式的组合,但无法使其工作。例如:

 string topLine = "Authentication information";  
 label.Text = Regex.Match(multipleLines, topLine + "(.*)").Groups[1].Value;
我还尝试使用:topLine+“\n” 在获取认证信息行之后,我应该添加什么来查看整个下一行

您的正则表达式目标可在此线程中找到。您可能希望实现
RegexOptions.Multiline
,以便可以使用
^
$
来匹配行的开始和结束

  • ^
    :根据是否设置了多行选项,匹配行中第一个字符之前的位置或字符串中第一个字符之前的位置

  • $
    :根据是否设置了多行选项,匹配行中最后一个字符后的位置或字符串中最后一个字符后的位置

这是完成任务最简单的方法


更新:

举个例子

const string account = @"Authentication information:" + "\n"
     + "User Information: " + "\n"
     + "Domain Username: "
     + " \n" + "\\Paris";

MatchCollection match = Regex.Matches(account, ^\\.*$, RegexOptions.Multiline);

这将检索带有
\\
的行以及在该行上执行该操作的所有内容。这就是一个例子,希望它能为您指明正确的方向。

尽管正则表达式可以实现您想要的功能,但它可能更简单,开销也小得多。使用此代码取决于您将接收的输入类型。对于您的示例,这将起作用:

string domainUsername = inputString.Split('\n').Where(z => z.ToLower().Contains(@"\")).FirstOrDefault();
if (domainUsername != null) {
    Console.WriteLine(domainUsername); // Should spit out the appropriate line.
} else {
    Console.WriteLine("Domain and username not found!"); // Line not found
}

使用String.Split将多行线拆分为一个字符串数组,然后检查数组中的每个项目以了解您要查找的内容。谢谢,但是,我不知道如何完成此操作。我需要知道命令或示例。我已经写了一个星期了,我自己找不到答案。谢谢你,但是,我有一个多行字符串,希望在一个文本字符串之后得到下一行。我不想解析整个字符串条目,因为有更多的“\”斜杠。我已经阅读了这个示例,但我找不到它是如何工作的。有人能用我的例子给我举个例子吗?@AskQuestion你有没有在表达式的末尾写一个循环;所以它递归地为您填充匹配项?
string domainUsername = inputString.Split('\n').Where(z => z.ToLower().Contains(@"\")).FirstOrDefault();
if (domainUsername != null) {
    Console.WriteLine(domainUsername); // Should spit out the appropriate line.
} else {
    Console.WriteLine("Domain and username not found!"); // Line not found
}