簡體   English   中英

r中正則表達式中`\\\\ s | *`和`\\\\ s | [*]`的區別?

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

[ ]的功能在這里是什么?

第一個表達式在您使用它的方式中無效,因此*是一個特殊字符。 如果要以特殊字符的方式使用subgsub ,可以使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM