2015-01-14 50 views
-1

我有以下格式的字符串:正則表達式過濾字符串,並獲取搜索結果列表

\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 

我要濾掉具有價值1xx-XX值。 (xx-XX:1

在例子中的字符串,我得爲結果的值是

ab-EF 
dz-LF 
ef-DD 

這正則表達式會給我的結果作爲一個列表?

感謝名單

回答

2

您可以使用Regex.Matches具有以下的正則表達式

[a-z]{2}-[A-Z]{2}(?=:1) 

代碼:

var list = Regex.Matches(input, @"[a-z]{2}-[A-Z]{2}(?=:1)") 
       .Cast<Match>() 
     .   .Select(match => match.Value).ToList(); 
+0

@vks事實並非如此。我首先回答,它有':'第一個,然後把它改成'-',你可以明確指出,而不是回答和評論我的答案是重複的。如果需要檢查時間戳。 –

1
[a-z]{2}-[A-Z]{2}(?=:1) 

試試這個演示中看到。

https://regex101.com/r/fA6wE2/15

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