C# 用于筛选字符串并以列表形式获取结果的正则表达式
我有以下格式的字符串:C# 用于筛选字符串并以列表形式获取结果的正则表达式,c#,regex,C#,Regex,我有以下格式的字符串: \r\nab-CD:2\r\nab-EF:1\r\nbc-DE:3\r\ndz-LF:1\r\nkr-TZ:2\r\nef-DD:1\r\nlv-ER:2\r\ndf-QW:3\r 我必须过滤掉具有值1的xx xx值。(xx:1) 因此,在示例字符串中,我必须得到的结果是 ab-EF dz-LF ef-DD 哪个正则表达式会将结果作为列表提供给我 Thanx您可以使用Regex。将与以下Regex匹配 [a-z]{2}-[A-Z]{2}(?=:1) 代码: var
\r\nab-CD:2\r\nab-EF:1\r\nbc-DE:3\r\ndz-LF:1\r\nkr-TZ:2\r\nef-DD:1\r\nlv-ER:2\r\ndf-QW:3\r
我必须过滤掉具有值1
的xx xx
值。(xx:1
)
因此,在示例字符串中,我必须得到的结果是
ab-EF
dz-LF
ef-DD
哪个正则表达式会将结果作为列表提供给我
Thanx您可以使用
Regex。将与以下Regex匹配
[a-z]{2}-[A-Z]{2}(?=:1)
代码:
var list=Regex.Matches(输入,@“[a-z]{2}-[a-z]{2}(?=:1)”)
.Cast()
. .选择(match=>match.Value).ToList();
试试这个演示
@当然不是。我先回答,它有:
,然后把它改成-
,你可以清楚地指出,而不是回答和评论我的答案是重复的。如果需要,请检查时间戳。
var list = Regex.Matches(input, @"[a-z]{2}-[A-Z]{2}(?=:1)")
.Cast<Match>()
. .Select(match => match.Value).ToList();
[a-z]{2}-[A-Z]{2}(?=:1)
NODE EXPLANATION
--------------------------------------------------------------------------------
[a-z]{2} any character of: 'a' to 'z' (2 times)
--------------------------------------------------------------------------------
- '-'
--------------------------------------------------------------------------------
[A-Z]{2} any character of: 'A' to 'Z' (2 times)
--------------------------------------------------------------------------------
(?= look ahead to see if there is:
--------------------------------------------------------------------------------
:1 ':1'
--------------------------------------------------------------------------------
) end of look-ahead