我在R中有一个表,我想使用grep查询并将所有匹配项和周围的100个左右字符返回到新列。 我从以前的问题中看过其他解决方案,但无法解决任何问题。
ttqqcw 回答:在一列中查找字符模式,如果它返回一个匹配项,则将匹配的字符串以及每行几行添加到新列中
这很容易用正则表达式完成
library("stringi")
data = data.frame(strings = c('abcXdef','abcYdef','pgrXstu','Xyz'))
data$match = stri_match_first_regex(data$strings,pattern = ".{0,1}X.{0,2}")[,1]
请注意,他的示例假定每个字符串仅出现一次模式(此示例中的模式为“ X”)。
match
列将包含第一个匹配项,之前最多1个字符,之后最多2个字符。