c#正则表达式如何从字符串中排除



我正在研究c#上的正则表达式,我需要从字符串中只获得一部分,并排除所有其余部分。

var file = "XD_ADX_W_CGX_CLAIMS_2021_07_11.TXT";

我只想得到"CGX_CLAIMS"从上面的字符串,XD_ADX是可变的,W是静态的,2021_07_11也是可变的

我可以用下面的正则表达式提取日期:

Regex r = new Regex(@"[_]d{4}[_]d{2}[_]d{2}[.]", RegexOptions.RightToLeft);

现在我只需要提取CGX_CLAIMS(这是变量..可能是其他字符串)…任何想法?

谢谢! !

由于_W_是静态的,您可以使用

_W_(.*?)_d{4}_d{2}_d{2}.

参见regex演示。细节:

  • _W_-已知子字符串
  • (.*?)-组1:除换行字符外的任何零个或多个字符,尽可能少
  • _d{4}_d{2}_d{2}.-_,四位,_,两位,_,两位和一个.字符。

在c#中,你可以使用

var output = Regex.Match(text, @"_W_(.*?)_d{4}_d{2}_d{2}.")?.Groups[1].Value;

最新更新