2016-03-28 4 views
0

Есть ли простой способ grep обе скобки в одной строке кода. Я хотел бы включить открытие [ и закрытие скобки ] в одной строке кода. Я пробовал всевозможные комбинации, но кажется, что возможно только по одному. У меня есть следующий:Найти скобки с помощью grep

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

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

ответ

3

Если первая вещь в классе символов (внутри []) является квадратной скобкой (или один), то это интерпретируется буквально, а не как часть класса символов. Это означает, что вы можете использовать [[] в соответствии с одной открытой квадратной скобкой и []], чтобы соответствовать закрывающей. Вы даже можете добавить вещи после скобки (но если вы хотите, чтобы соответствовать как то лучше всего использовать [][]

несколько примеров:.

> 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 
Смежные вопросы