R: регулярное выражение \\ не является пустым пространством - PullRequest
0 голосов
/ 16 мая 2019

Мне просто интересно, почему \\s не работает скобка [] для опций, но пустое пространство работает. Вот пример:

sub("[a-z ]+[a-z]+","it works","abcd xyz")
# [1] "it works

Это то, что я хочу. Но если я использую \\s, я получил это:

sub("[a-z\\s]+[a-z]+","it works","abcd xyz")
# [1] "it works xyz"

А также [[: space:]] не дает желаемого результата:

sub("[a-z[[:space:]]]+[a-z]+","it works","abcd xyz") 
# [1] "abcd xyz"

Почему \\s не работает в дополнительных скобках?

Это касается языка программирования R.

Ответы [ 2 ]

2 голосов
/ 16 мая 2019

Как я уже сказал в комментарии, у вас есть три квадратных скобки в вашем последнем регулярном выражении, необходимо только два.
Любое из следующего будет делать то, что вы хотите.

sub("[a-z[:space:]]+[a-z]+","it works","abcd xyz")
sub("[[:lower:][:space:]]+[[:lower:]]+","it works","abcd xyz")
#[1] "it works"
2 голосов
/ 16 мая 2019

Должно работать, если мы укажем perl = TRUE. По умолчанию это FALSE

sub("[a-z\\s]+[a-z]+","it works","abcd xyz", perl = TRUE)
#[1] "it works"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...