我正在研究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;