是否可以在正则表达式中放置字符串变量?如果是这样.. 我已经使用正则表达式玩了四个小时,我只需要完成一件事即可。
return (new Regex(@"\bA=(\d+[/]\d+)").Match(From).Groups[1].Value.Trim()).ToString();
只有从字符串的“ A =”后面提取该行后,该行基本上会获得任何类似于42/13的分数。 所以这是我的问题-是否可以做类似的事情:
string variable;
Regex(@"\b"variable"=(\d+[/]\d+)").Match(From).Groups[1].Value.Trim()).ToString();
这样做的目的是使变量中的任何内容都成为正则表达式,例如,如果在变量中我们输入D,则现在D =现在A =。
谢谢。
答案 0 :(得分:2)
这是字符串插值。您可以在字符串上使用$
运算符来使用它。例子
string variable = "hello";
Regex regex = new Regex($@"\b{Regex.Escape(variable)}=(\d+[/]\d+)");
答案 1 :(得分:2)
如果使用反斜杠而不转义,则需要照常连接字符串(+
),并在每个字符串前附加@
。您也不需要在字符类中将/
括为[/]
。另外,as mentioned by Josh in his answer和罗恩·拜尔(Ron Beyer)在您的问题下方的评论中,可以使用插值法。
@"\b" + variable + @"=(\d+/\d+)"
另外,您应该对变量使用方法Regex.Escape()
,以确保转义了任何特殊字符(这将防止您的模式失败或进行不正确的匹配)-清理变量。