如何在正则表达式中的C#中使用未命名的正则表达式组?

时间:2018-09-09 13:34:10

标签: c# regex regex-group

嘿,所以我当前的正则表达式是@"(into)(to)add\s[^\s]{1,}\1|\2[^\s]{1,}",我希望输入内容是“将单词添加到类别中”,总的来说,正则表达式可以正常工作,但仅\1|\2部分,我尝试使用组和各种各样的解决方案,但我似乎无法弄清楚如何做到这一点,以使输入可以是into to

有人可以帮我吗? (这在C#中并使用Regex类)

2 个答案:

答案 0 :(得分:0)

从您给出的示例中,我认为您正在寻找像add\s\w+\s(into|to)\s\w+这样的正则表达式。您当前的正则表达式仅匹配以“ intoto”开头的字符串,这可能不是您想要的。

答案 1 :(得分:0)

如果我对您的理解正确,那么您就不需要反向引用(未命名的)组,您可以使用一个简单的替代方法,如下所示:

@"add \w+ (into|to) \w+"

这将在搜索字符串中选择intoto

修改

使用optional符号'?'让我们更加“先进”:

@"add \w+ (in)?to \w+"

这将与“ in”匹配零次或一次,后跟“ to”,因此它将与原始匹配的intoto正则表达式。

Edit2

我有一种感觉,您想在RegEx中使用一个变量,您当然可以这样:

string search = "into|to";
RegEx regEx = new ReqEx(@"add \w+ (" + search + ") \w+");