Мне нужна помощь в понимании кода шаблона в функции grep - PullRequest
0 голосов
/ 13 февраля 2019

Это код из викторины datacamp.com для промежуточного курса R.

Я не понимаю, как работает шаблон "^[0-9]+$".Может кто-нибудь объяснить это?

dates <- c("12/15/10", "12-2012", "12.2014", "1995")
grep(pattern = "^[0-9]+$", x = dates)

выход 4

1 Ответ

0 голосов
/ 13 февраля 2019

По регулярным выражениям

^ - Stands for beginning of the string
[0-9] - Numeric values 
+ -   One or more characters can satisfy the criteria 
$ -  Should check for the character that satisfy the criteria till the end of string

Для ввода «15.12.10», «12-2012», «12.2014», «1995»

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

В вашем примере, условие для удовлетворения является «Строка с только числовыми символами»

"12/15/10"  ===  Two "/" are the non numeric character.
 "12-2012"  ===  One "-" is a non numeric character.
 "12.2014"  ===  One "." is a non numeric character.
 "1995"     ===  Zero non numeric character. [Satisfy the criteria]

1995имеет индекс 4 во входном векторе.

Если в случае, если ваш ввод был датами <- c ("12/15 // 10", "12-2012", "12.20.14", "1995 "," 1987 ") grep (pattern =" ^ [0-9] + $ ", x = date) </p>

Выходными данными будет вектор со значением 4 5, указывающий индекс значений, удовлетворяющихкритерии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...