1

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

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

用于将行与 07/10/2013-07/11/2013 某处匹配,例如。这里 from_date = 07/10/2013。

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

4

1 回答 1

3

只需连接字符串。

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

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

var rx = new Regex(string.Format("^([^_]+)_[^,]+,{0}…the rest…", fromDate);
于 2013-07-16T16:24:16.220 回答