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”。 但是,由于插入标点符号,该子字符串不被标识为重复。

这是编程指南的例子.
展开
 我来答
梦里寻你我他
推荐于2017-11-25 · TA获得超过2199个赞
知道大有可为答主
回答量:2171
采纳率:42%
帮助的人:1193万
展开全部
\0是完整正则匹配的自身

\1 就是用户用()定义的第一组
同理\2 就是第二组

例如(\d)(\w)
匹配1b
这时
\0是1b
\1是1
\2是b
更多追问追答
追问
你的意思,是不是:
(\d)(\w)\0\1

等价于:
(\d)(\w)(\d)(\w)

也就是说,是为了省得重复写...是么?
追答

确实可以这样写


不过

(\d)(\w)(\d)(\w)


应该是

(\d)(\w)\1\2


如果字串为1b2b

但是这是\1代表的是1 \2代表的是b,所以无法匹配


如果是1b1b,则可以匹配

TableDI
2024-07-18 广告
在Excel中,字符串匹配函数主要用于查找和定位特定字符串在文本中的位置或进行替换操作。常用的字符串匹配函数包括FIND、SEARCH、SUBSTITUTE和REPLACE等。FIND和SEARCH函数用于查找字符串的位置,而SUBSTIT... 点击进入详情页
本回答由TableDI提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式