我正在做一些正则表达式,这是perl中的以下工作表达式
$_ =~ /^([^_]+)_[^,]+,"$from_date\-[\d\/]+","[\d\/]*",
"([^"]*)","([^"]*)","([^"]*)","[^"]+"$/x
用于匹配07/10 / 2013-07 / 11/2013在那里某处的线路,所以对于ex。这里from_date = 07/10/2013。
现在我想在C#中复制相同的东西,但C#没有$符号,因此from_date不会被读取为变量。我如何更改上述内容,即如何在正则表达式中嵌入现有变量名称,以便它不会被读取为字符串。我尝试了一些引号并使用+符号,但它不起作用
答案 0 :(得分:3)
只需连接字符串。
var rx = new Regex("^([^_]+)_[^,]+," + fromDate + "…the rest…");
或者,使用string.Format
。我倾向于发现这更具可读性:
var rx = new Regex(string.Format("^([^_]+)_[^,]+,{0}…the rest…", fromDate);