C# 正则表达式C(匹配起始词和结束词)

C# 正则表达式C(匹配起始词和结束词),c#,.net,regex,match,C#,.net,Regex,Match,我正在使用正则表达式检索段落。我的字符串变量中的段落包含开头字母G,并以变量@variable结尾 我会用什么样的模式来抓住那一段?我正在使用下面的代码,但我想我真的不喜欢了 Regex.Match(paragraph, @"\G. .*\@Variable$"); 我想你可能在找这样的东西: Regex.Match(paragraph, string.Format(@"^G.*?{0}$", yourVariableHere)); string regex = @"G.+" + v

我正在使用正则表达式检索段落。我的字符串变量中的段落包含开头字母G,并以变量@variable结尾

我会用什么样的模式来抓住那一段?我正在使用下面的代码,但我想我真的不喜欢了

    Regex.Match(paragraph, @"\G. .*\@Variable$");

我想你可能在找这样的东西:

Regex.Match(paragraph, string.Format(@"^G.*?{0}$", yourVariableHere));
string regex = @"G.+" + variable.ToString()
Regex.Match(paragraph, regex);

我想你可能在找这样的东西:

Regex.Match(paragraph, string.Format(@"^G.*?{0}$", yourVariableHere));
string regex = @"G.+" + variable.ToString()
Regex.Match(paragraph, regex);

应该是这样的:

Regex.Match(paragraph, string.Format(@"^G.*?{0}$", yourVariableHere));
string regex = @"G.+" + variable.ToString()
Regex.Match(paragraph, regex);

当你在做这件事的时候,抓取一个副本-使这样的任务更容易。

它会是这样的:

Regex.Match(paragraph, string.Format(@"^G.*?{0}$", yourVariableHere));
string regex = @"G.+" + variable.ToString()
Regex.Match(paragraph, regex);

当你在做这件事的时候,抓取一份副本-使这样的任务更容易。

如果我了解你的要求,我想这就是你想要的:

string regex = @"G.+" + variable;
Regex.Match(paragraph, regex);
有几件事需要注意,如果变量中包含\之类的东西会弄乱正则表达式,那么必须小心变量中的内容。正则表达式中有一些保留字符,您必须小心,以免引起问题


另外,我使用了.+来代替。*,它的意思是介于一次和无限次之间,而不是介于零次和无限次之间,因此要求段落中至少有一个其他字符。您可能希望添加类似于{10,}的内容,这将根据您的需要确定至少10个字符。

如果我了解您的要求,我想这就是您想要的:

string regex = @"G.+" + variable;
Regex.Match(paragraph, regex);
有几件事需要注意,如果变量中包含\之类的东西会弄乱正则表达式,那么必须小心变量中的内容。正则表达式中有一些保留字符,您必须小心,以免引起问题


另外,我使用了.+来代替。*,它的意思是介于一次和无限次之间,而不是介于零次和无限次之间,因此要求段落中至少有一个其他字符。您可能希望添加类似于{10,}的内容,根据您的需要,该内容将至少包含10个字符。

两件事,第一,为什么没有必要转义我所知道的G?第二,我想你会想做的。+这样你就可以得到一个或多个,而不是零个或多个。@CodingGorilla-得分-非常感谢你指出这两件事,第一,为什么没有必要逃避我所知道的G?第二,我想你会想做的。+这样你就可以得到一个或多个,而不是零个或多个。@CodingGorilla-得分-非常感谢你指出这些。谢谢大家的帮助。它起作用了,但并不像预期的那样。由于出现了多个字母G的情况,我似乎不得不选择另一种执行此任务的方式。因此,我现在正考虑将这一段放在双括号内。[[段落]],因此,在执行正则表达式时,我将查找双括号之间的所有内容。现在的语法是:string regex=@[.+]];我决定只使用双括号的子字符串。再次感谢大家!谢谢大家的帮助。它起作用了,但并不像预期的那样。由于出现了多个字母G的情况,我似乎不得不选择另一种执行此任务的方式。因此,我现在正考虑将这一段放在双括号内。[[段落]],因此,在执行正则表达式时,我将查找双括号之间的所有内容。现在的语法是:string regex=@[.+]];我决定只使用双括号的子字符串。再次感谢大家!