Если первая вещь в классе символов (внутри []) является квадратной скобкой (или один), то это интерпретируется буквально, а не как часть класса символов. Это означает, что вы можете использовать [[]
в соответствии с одной открытой квадратной скобкой и []]
, чтобы соответствовать закрывающей. Вы даже можете добавить вещи после скобки (но если вы хотите, чтобы соответствовать как то лучше всего использовать [][]
несколько примеров:.
> 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
'grepl («[\\ [\\]]» , CAS, perl = T) ' – fanli