Ответ 1
> grepl("^[^_]+_1",s)
[1] FALSE
> grepl("^[^_]+_2",s)
[1] TRUE
в принципе, ищите все в начале, кроме _
, а затем _2
.
+1 к @Ananda_Mahto для предложения grepl
вместо grep
.
У меня есть строка R, с форматом
s = `"[some letters and numbers]_[a number]_[more numbers, letters, punctuation, etc, anything]"`
Я просто хочу, чтобы проверить, содержит ли s
"_2"
в первой позиции. Другими словами, после первого символа _
, это единственное число a "2"? Как это сделать в R?
Я предполагаю, что мне нужно какое-то сложное выражение регулярных выражений?
Примеры:
39820432_2_349802j_32hfh = TRUE
43lda821_9_428fj_2f = FALSE
(обратите внимание, что там есть _2
, но не в нужном месте)
> grepl("^[^_]+_1",s)
[1] FALSE
> grepl("^[^_]+_2",s)
[1] TRUE
в принципе, ищите все в начале, кроме _
, а затем _2
.
+1 к @Ananda_Mahto для предложения grepl
вместо grep
.
Я думаю, что стоит ответить на общий вопрос "R - тест, если строка содержит строку" здесь.
Для этого используйте grep.
# example:
> if(length(grep("ab","aacd"))>0) print("found") else print("Not found")
[1] "Not found"
> if(length(grep("ab","abcd"))>0) print("found") else print("Not found")
[1] "found"