C#Regex匹配指定子字符串旁边的任何字符,但忽略换行符/制表符

C#Regex匹配指定子字符串旁边的任何字符,但忽略换行符/制表符,c#,.net,regex,visual-studio-2013,C#,.net,Regex,Visual Studio 2013,我想匹配单词“Test”旁边的字符,但是如果下一个字符是换行符\n字符,我需要取而代之的是换行符旁边的字符。在以下输入字符串中,my所需输出是字符C和w。但是我得到的是\n和w: string str = "This abcTest\nCde and qrvTestwest is an input"; foreach (Match mt in Regex.Matches(str, @"(?<=Test)(.)",RegexOptions.Singleline)) Console.W

我想匹配单词“Test”旁边的字符,但是如果下一个字符是换行符
\n
字符,我需要取而代之的是换行符旁边的字符。在以下输入字符串中,my
所需输出是字符
C
w
。但是我得到的是
\n
w

string str = "This abcTest\nCde and qrvTestwest is an input";
foreach (Match mt in Regex.Matches(str, @"(?<=Test)(.)",RegexOptions.Singleline))
    Console.WriteLine(mt.Groups[1].Value);
string str=“此abcTest\nCde和qrvTestwest是一个输入”;

foreach(Match mt in Regex.Matches(str,@)(?你所问的正则表达式是:

Test[\n](.)|Test(.)
您需要检查Test\n和Test(.)两种情况

检查以下项的工作正则表达式:

对于评论,这更有效:

Test[\n]*(.)
试试这个:

Test[\n]*(.)

它将跳过任意数量的换行符。

字符串中是否有实际的
换行符
或仅仅是
\n
?@noob在实际文件内容中,
Test
之后可能会有实际的换行符,或者,如果您想允许多个换行符,
Test[\n]*(。
工作起来更简单。@Aschab在我的C#代码中,
Test[\n]()|Test(.)
模式返回
C
和一个空字符串(第二个匹配项)。只需使用
Test[\r\n]*(.)
@MagikM18您的解决方案就可以了。是否将其添加为解决方案,以便我可以将其标记为答案。