2013-11-03 67 views

回答

3

第一個表達式是在你正在使用它的方式無效,因此*是一個特殊字符。如果您想用這種方式使用subgsub以及特殊字符,則可以使用fixed = TRUE參數集。

這需要表示正在搜索的模式的字符串,忽略了中的任何特殊字符。

請參閱Pattern Matching and Replacement中的R文檔。

x <- 'Aug 2013****' 
gsub('*', '', x, fixed=TRUE) 
#[1] "Aug 2013" 

你的第二個表達式只使用一個字符類[]*避免逃逸,一樣..

x <- 'Aug 2013*' 
gsub('\\s|\\*', '', x) 
#[1] "Aug2013" 

至於你的第一個表達式的解釋:\\s|*

\s  whitespace (\n, \r, \t, \f, and " ") 
|  OR 

而第二個表達式:\\s|[*]

\s  whitespace (\n, \r, \t, \f, and " ") 
|  OR 
[*]  any character of: '*' 
3

這裏使用[]沒什麼別的,只是爲了將*轉義爲文字星號。

第一個正則表達式無效(*是特殊字符,意思是「零個或多個」)。

第二正則表達式是等效於

'\\s|\\*' 
相關問題