C#Regex匹配指定子字符串旁边的任何字符,但忽略换行符/制表符
我想匹配单词“Test”旁边的字符,但是如果下一个字符是换行符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
\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您的解决方案就可以了。是否将其添加为解决方案,以便我可以将其标记为答案。