[英]the difference between `\\s|*` and `\\s|[*]` in regular expression in r?
r中正則表達式中\\\\s|*
和\\\\s|[*]
之間有什么區別?
> gsub('\\s|*','','Aug 2013*')
[1] "Aug2013*"
> gsub('\\s|[*]','','Aug 2013*')
[1] "Aug2013"
[ ]
的功能在這里是什么?
第一個表達式在您使用它的方式中無效,因此*
是一個特殊字符。 如果要以特殊字符的方式使用sub
或gsub
,可以使用fixed = TRUE
參數集。
這將獲取表示正在搜索的模式的字符串,並忽略任何特殊字符。
請參閱R
文檔中的Pattern Matching and Replacement
。
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: '*'
這里使用[]
只不過是將*
轉換為文字星號。
第一個正則表達式無效( *
是特殊字符,表示“零或更多”)。
第二個正則表達式相當於
'\\s|\\*'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.