C# 如何在正则表达式中嵌入变量名

C# 如何在正则表达式中嵌入变量名,c#,C#,我在做一些正则表达式,下面是perl中的工作表达式 $_ =~ /^([^_]+)_[^,]+,"$from_date\-[\d\/]+","[\d\/]*", "([^"]*)","([^"]*)","([^"]*)","[^"]+"$/x 用于将该行与2013年10月7日-2013年11月7日的某个地方相匹配,因此对于示例,此处从日期=2013年10月7日开始 现在我想在C#中复制同样的东西,但是C#没有$符号,所以from#date不能作为变量读取。我将

我在做一些正则表达式,下面是perl中的工作表达式

$_ =~ /^([^_]+)_[^,]+,"$from_date\-[\d\/]+","[\d\/]*",
                 "([^"]*)","([^"]*)","([^"]*)","[^"]+"$/x
用于将该行与2013年10月7日-2013年11月7日的某个地方相匹配,因此对于示例,此处从日期=2013年10月7日开始


现在我想在C#中复制同样的东西,但是C#没有$符号,所以from#date不能作为变量读取。我将如何更改上述内容,即如何在正则表达式中嵌入现有变量名,使其不会被读取为字符串。我尝试了一些引号和使用+号,但没有成功

只是将字符串连接起来

var rx = new Regex("^([^_]+)_[^,]+," + fromDate + "…the rest…");
或者,使用。我倾向于认为这更具可读性:

var rx = new Regex(string.Format("^([^_]+)_[^,]+,{0}…the rest…", fromDate);

@你是对的,这个标题有点让人吃惊。如果(Regex.IsMatch(result,“^([^\\+)\[^,]+,“+从日期开始+”-[\\d\\\/]+\”,“[\\d\\\/]*”,“([^\“]*)\”,“([^\“]*)\”,“([^\“]*)\”,“([^\\”]*)\”,“[^\\”)\”,“[^\\\”]*”,“]+”)我试过这个,但没找到it@user2521358这太不可读了。在C#中使用文本字符串,那么就不需要转义引号和其他反斜杠:
@“this”是一个字符串
而不是
“this\”是一个字符串“
我很困惑,