2014-11-04 95 views
0

我想寫一個正則表達式代碼來刪除空格,第一個單詞,括號和所有數字。刪除正則表達式中的空格

我有以下文字:

{a, 1, b, 4, c, 6, d, 8} 

我感興趣的是:b,c和d,而排除。

這個正則表達式:"\,([^{^,+^\d-}]*)"給了我b,c和d,但有空格。

我試過這個:"\,([^{^,+^\d-^\s+}]*)"但沒有運氣。

有沒有提示?

+0

您正在使用什麼語言/工具? – 2014-11-04 21:51:55

+1

你想要做什麼語言?因爲修剪'{}'和分割'''會容易得多。 – Marty 2014-11-04 21:52:17

+0

語言工具是C# – user4214837 2014-11-04 21:53:38

回答

2

在你的情況,最簡單的解決辦法是,提取所有的字母,而忽略了第一場比賽:

var matches = Regex.Matches(inputText, @"\p{L}+") 
        .Cast<Match>() 
        .Skip(1) 
        .Select(match => match.Value) 
        .ToList(); 

也就是說,如果你不需要驗證輸入字符串格式。如果你這樣做,你可以使用事先以下模式:

^\{(?:(?:\s*\w+\s*,\s)*\s*\w+)?\s*\}$ 

這意味着:

^\{      # Opening brace 
    (?:     # Optionally: 
    (?:\s*\w+\s*,\s)* # Words followed by commas 0 to n times 
    \s*\w+    # Followed by a word 
)?      
\s*      # Optional whitespace 
\}$      # Closing brace 

Demo of the validation regex

相關問題