2015-12-02 39 views
0

嗨我想創建一個特殊的字符串,就像grepl中的digitR)。爲reg-exp創建一個預定義的集合。 (gsub,grepl,...)

string <- c("a>-787", "ahigji<=!5")

說,

special_characters <- c(">-!", "<=!") 

現在我想看看是否有與special characters字符串中的條目。

grepl("special_characters", string) 

而且我已經試過grepl("[special_characters]", string) , grepl("[[:special_characters:]]", string)

但它給了我答非所問!在測試不同的字符串。

我只是想使用類似[[:digit]] - 總之我需要創建一個組預定義的,我需要在grepl or gsub

+0

你可以像這樣使用它,但我不知道它是否可以接受:'special_characters <- paste("> - !「,」<=!「,sep ='|'); grepl(special_characters,string)' – LyzandeR

+0

@ LyzandeR cool :)猜猜它是否有效,但會給出一個最好的徹底測試。Thanx :) –

回答

1

試試這個

special_characters <- c(">-!", "<=!") 
spchars <- paste(special_characters, collapse='|') 
grepl(spchars, string) 

它通過使用|,又名「或」來檢查您在special_characters中輸入的任何字符串。他們甚至可以是正則表達式!

1

使用它據我所知,你會能夠創建當量[:digit:][:space:],[:alnum:],[:punct:]等等,因爲這些內置到內部正則表達式引擎;他們不是專門針對像greplregexp功能,也不是什麼由R.控制

但是,做這樣的事情將讓你本質上是相同的行爲:

special_chars <- "[>\\-\\!<\\=]" 
string <- c("a>-787", "ahigji<=!5") 
## 
R> grepl(special_chars, string) 
#[1] TRUE TRUE 
+0

我相信我需要輸出作爲邏輯。在這個意義上,只是二進制不是邏輯向量的長度> 1 –

+0

正如'任何(grepl(special_chars ,string))'或'all(grepl(special_chars,string))'(取決於你正在檢查的內容)? – nrussell

+0

cool會給它一個試試:)謝謝:) –

相關問題