Подтвердить что ты не робот

grepl для периода "." в R?

Допустим, у меня есть строка "Привет". Я хочу посмотреть, если эта строка содержит точку:

text <- "Hello."
results <- grepl(".", text)

Это возвращает результаты как ИСТИНА, но оно также вернет это, если текст "Hello" без точки.

Я в замешательстве, я не могу найти ничего об этом в документации, и он делает это только за период.

Есть идеи?

4b9b3361

Ответ 1

См. различия с этими примерами

 > grepl("\\.", "Hello.")
[1] TRUE
> grepl("\\.", "Hello")
[1] FALSE

. означает все, что указано SimonO101, если вы хотите найти явный ., тогда вам нужно пропустить его, используя \\., что означает поиск .

Документация

R обширна в регулярных выражениях, вы также можете взглянуть на эту ссылку, чтобы понять использование точки.

Ответ 2

Я обычно использую подход Jilber, но здесь есть два других способа:

> grepl("[.]", "Hello.")
[1] TRUE
> grepl("[.]", "Hello")
[1] FALSE

> grepl(".", "Hello.", fixed = TRUE)
[1] TRUE
> grepl(".", "Hello", fixed = TRUE)
[1] FALSE