[英]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.