2010-04-23 32 views
2

使用C#將文化信息從resx文件名中拉出的最有效方法是什麼?解決方案還應該處理文件名中沒有文化信息(即form1.resx)。在這種情況下,應返回一個分配爲「默認」的字符串。在c#中將文化信息從resx的文件名中拉出來的最有效方法是什麼?

+0

你是不是想請求中拉出來?或者這只是一個簡單的字符串操作(如標籤所示)? – aronchick 2010-04-23 18:25:50

+0

我應該補充一點,我不知道這些時期之間包含哪種文化。基本上如果有人在那裏,我需要抓住它,否則返回「默認」。 – 2010-04-23 18:31:04

+0

aronchick - 只需字符串操作。 – 2010-04-23 18:31:46

回答

4

這似乎是它的工作:

string GetCulture(string s) 
{ 
    var arr=s.Split("."); 
    if(arr.Length>2) 
    return arr[1]; 
    else 
    return "Default"; 
} 
2

最好的辦法是隻使用正則表達式:

string ParseCulture(string input) 
{ 
    var r = Regex.new('[\w\d]+\.([\w\-]+)\.resx') 
    // Match the regular expression pattern against a text string. 
    Match m = r.Match(input); 
    if (m.Success) 
    { 
    return m.Groups[1]; 
    } 
    else 
    { 
    return "Default"; 
    } 
} 

這回來比賽(與你的比賽尋找的詞組),或不匹配(這意味着你應該使用「默認」 )。

+0

對不起,我問這個問題很不好。我不確切知道哪種文化會在那裏,如果是在這兩個時期之間,我只需要抓住它。 – 2010-04-23 18:34:49

+0

是的,我的正則表達式可以正常工作。 – aronchick 2010-04-23 18:35:57

相關問題