C#正则表达式如何从字符串中排除
Posted
技术标签:
【中文标题】C#正则表达式如何从字符串中排除【英文标题】:C# regex how to exclude from string 【发布时间】:2021-12-08 16:10:32 【问题描述】:我正在 c# 上处理正则表达式,我只需要从字符串中获取一部分并排除所有其余部分。
var file = "XD_ADX_W_CGX_CLAIMS_2021_07_11.TXT";
我只想从上面的字符串中获取“CGX_CLAIMS”,XD_ADX 是可变的,W 是静态的,2021_07_11 也是可变的
我能够使用以下正则表达式提取日期:
Regex r = new Regex(@"[_]\d4[_]\d2[_]\d2[.]", RegexOptions.RightToLeft);
现在我只需要提取 CGX_CLAIMS(即变量..可能是其他字符串)...有什么想法吗?
谢谢!!
【问题讨论】:
【参考方案1】:由于_W_
是静态的,所以可以使用
_W_(.*?)_\d4_\d2_\d2\.
请参阅regex demo。 详情:
_W_
- 一个已知的子串
(.*?)
- 第 1 组:除换行符以外的任何零个或多个字符,尽可能少
_\d4_\d2_\d2\.
- _
,四位数字,_
,两位数字,_
,两位数字和一个 .
字符。
在 C# 中,您可以使用
var output = Regex.Match(text, @"_W_(.*?)_\d4_\d2_\d2\.")?.Groups[1].Value;
【讨论】:
以上是关于C#正则表达式如何从字符串中排除的主要内容,如果未能解决你的问题,请参考以下文章