2016-03-28 16 views
0

Her iki parantezin de tek bir kod satırında grep yapmanın kolay bir yolu var mı? ['un açılmasını ve ] köşebentini tek bir kod satırına dahil etmek istiyorum. Her türlü kombinasyonu denedim ama bir seferde sadece bir tane gibi görünüyor.grep'i kullanarak parantezleri bulma

if(grepl("\\[+",CAS)) return(FALSE) 
+1

'grepl ("[\\ [\\]]" , CAS, perl = T) – fanli

cevap

3

bir karakter sınıfının ilk şey ([] içinde) (ya da bir) o zaman oldukça karakter sınıfının parçası olarak daha tam anlamıyla yorumlanır köşeli parantez ise: Aşağıdaki sahiptir. Bu, [[]'u, tek bir açılış köşeli parantez ile eşleşecek ve []], kapanış olanı eşleştirmek için kullanabileceğiniz anlamına gelir. Hatta parantez sonra şeyler ekleyebilir (ama daha sonra her iki eşleştirmek istiyorsanız, o [][] kullanmak en iyisidir

bazı örnekler:.

> tmp <- c('hello','[',']','[]', '[a-z]') 
> grep('[[]', tmp) 
[1] 2 4 5 
> grep('[]]', tmp) 
[1] 3 4 5 
> grep('[[].*[]]', tmp) 
[1] 4 5 
> grep('[[]az-]', tmp) 
integer(0) 
> grep('[[]]', tmp) 
[1] 4 
> grep('[][]', tmp) 
[1] 2 3 4 5 
> grep('[][az-]', tmp) 
[1] 2 3 4 5 
> regexpr('[][az-]*', tmp) 
[1] 1 1 1 1 1 
attr(,"match.length") 
[1] 0 1 1 2 5 
attr(,"useBytes") 
[1] TRUE 
İlgili konular