2012-10-27 78 views
1

我卡在正則表達式問題上。我想匹配那些不是空格或換行符的東西。R正則表達式匹配

沒有空格很簡單:

[^ ] 

並不意味着沒有空格或換行符是:

[^(|\n)] 
+0

請參閱R中的'regex'。您可能也有興趣在您的正則表達式中搜索'[:space:]',它匹配「*空格字符:製表符,換行符,垂直製表符,換頁符,回車符,空格以及其他可能與語言環境相關的字符。*「 – A5C1D2H2I1M1N2O1R2T1

回答

6

沒有,

[^(|\n)] 

的意思是「這是任何字符既不是空間,一個(,一個),一個|,或一個換行符

的。 []被稱爲字符類別它匹配列表中的單個字符,可選地否定^開頭。

你想要的是

[^ \n] 

(或\S如果你也想排除換行,換頁和標籤,從法律的匹配的範圍)。

1

如果你不介意的排除選項卡,以及,你可以使用\ S和\ S分別包含或排除空格,製表符和換行符的快捷方式。

在你的情況下,正則表達式'\ S'將匹配任何不是空格,製表符或換行符的字符。

從快速參考指南:http://www.regular-expressions.info/reference.html

1

要麼\S[^\s]或,這是等價的。

+2

第一個字符不需要方括號。 –