2011-04-10 36 views
0

我收到了一個字符串列表。我想檢查那裏的每一個字符串。有時,字符串可以有後綴_anim(X),其中X是一個整數。如果這樣的字符串具有那種後綴,我需要檢查所有其他具有相同「基數」(基數是沒有後綴的部分)的字符串,最後將這些字符串分組並將它們發送給我的函數。如何檢查我的字符串中的某個後綴?

因此,考慮到下一個列表:

Man_anim(1)

女人

Man_anim(3)

Man_anim(2)

我的代碼會發現基地Man有一個特殊的後綴,一個nd將生成一個新的列表,將所有的Man對象分組並根據圓括號內的值進行排列。該代碼應該返回

Man_anim(1)

Man_anim(2)

Man_anim(3)

和發送該名單對我進行進一步的處理功能。

我的問題是,我該如何檢查是否存在這樣的後綴,然後檢查括號內的值?

回答

3

如果您知道後綴將是_anim(X)每次(顯然,與X變化),那麼您可以使用正則表達式:

Regex.IsMatch(value, @"_anim\(\d+\)$") 

如果後綴不是至少是適度一致,那麼您將不得不查看數據結構,如後綴樹,您可以使用它來確定字符串中的常見結構。

+0

有趣。而不是使用IsMatch是不是有什麼東西只是得到X的價值? – Voldemort 2011-04-10 22:30:08

+0

@Omega,是的,你需要在正則表達式中使用一個捕獲組:「@」_ anim \( \ d + \)$「'。然後使用Regex.Match並檢索名爲「x」的組的值 – 2011-04-10 22:50:54

+0

On Regex.IsMatch(1,@「_ anim \( \ d + \)$」)它給了我一個關於@的錯誤,它告訴我「預期的表達式「 – Voldemort 2011-04-10 22:57:43

相關問題