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

时间:2013-07-16 16:21:31

标签: c#

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

$_ =~ /^([^_]+)_[^,]+,"$from_date\-[\d\/]+","[\d\/]*",
                 "([^"]*)","([^"]*)","([^"]*)","[^"]+"$/x

用于匹配07/10 / 2013-07 / 11/2013在那里某处的线路,所以对于ex。这里from_date = 07/10/2013。

现在我想在C#中复制相同的东西,但C#没有$符号,因此from_date不会被读取为变量。我如何更改上述内容,即如何在正则表达式中嵌入现有变量名称,以便它不会被读取为字符串。我尝试了一些引号并使用+符号,但它不起作用

1 个答案:

答案 0 :(得分:3)

只需连接字符串。

var rx = new Regex("^([^_]+)_[^,]+," + fromDate + "…the rest…");

或者,使用string.Format。我倾向于发现这更具可读性:

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