C#正则表达式,"\1"是什么意思?
例2:标识重复的单词意外地重复单词是编写器常犯的错误。可以使用正则表达式标识重复的单词,如以下示例所示。C#VB复制usingSystem;usingSystem.Tex...
例 2:标识重复的单词
意外地重复单词是编写器常犯的错误。
可以使用正则表达式标识重复的单词,如以下示例所示。
C#
VB
复制
using System;
using System.Text.RegularExpressions;
public class Class1
{
public static void Main()
{
string pattern = @"\b(\w+?)\s\1\b";
string input = "This this is a nice day. What about this? This tastes good. I saw a a dog.";
foreach (Match match in Regex.Matches(input, pattern, RegexOptions.IgnoreCase))
Console.WriteLine("{0} (duplicates '{1}') at position {2}",
match.Value, match.Groups[1].Value, match.Index);
}
}
// The example displays the following output:
// This this (duplicates 'This)' at position 0
// a a (duplicates 'a)' at position 66
正则表达式模式 \b(\w+?)\s\1\b
可以解释如下:
\b
在单词边界处开始。
(\w+)
匹配一个或多个单词字符。 它们一起构成可称为 \1 的组。
\s
与空白字符匹配。
\1
与等于名为 \1 的组的子字符串匹配。
\b
与字边界匹配。
通过将正则表达式选项设置为 RegexOptions.IgnoreCase,调用 Regex.Matches 方法。 因此,匹配操作不区分大小写,此示例将子字符串“This
this”标识为重复。
请注意输入字符串包含该子字符串“this?
This”。 但是,由于插入标点符号,该子字符串不被标识为重复。
这是编程指南的例子. 展开
意外地重复单词是编写器常犯的错误。
可以使用正则表达式标识重复的单词,如以下示例所示。
C#
VB
复制
using System;
using System.Text.RegularExpressions;
public class Class1
{
public static void Main()
{
string pattern = @"\b(\w+?)\s\1\b";
string input = "This this is a nice day. What about this? This tastes good. I saw a a dog.";
foreach (Match match in Regex.Matches(input, pattern, RegexOptions.IgnoreCase))
Console.WriteLine("{0} (duplicates '{1}') at position {2}",
match.Value, match.Groups[1].Value, match.Index);
}
}
// The example displays the following output:
// This this (duplicates 'This)' at position 0
// a a (duplicates 'a)' at position 66
正则表达式模式 \b(\w+?)\s\1\b
可以解释如下:
\b
在单词边界处开始。
(\w+)
匹配一个或多个单词字符。 它们一起构成可称为 \1 的组。
\s
与空白字符匹配。
\1
与等于名为 \1 的组的子字符串匹配。
\b
与字边界匹配。
通过将正则表达式选项设置为 RegexOptions.IgnoreCase,调用 Regex.Matches 方法。 因此,匹配操作不区分大小写,此示例将子字符串“This
this”标识为重复。
请注意输入字符串包含该子字符串“this?
This”。 但是,由于插入标点符号,该子字符串不被标识为重复。
这是编程指南的例子. 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询