如何提取字符串匹配的行?

时间:2015-02-20 09:31:49

标签: regex r

我的数据如下所示,并且只想提取数据列中包含“7_”字符串且其位置未修复的行。我想要提取那些“7_”匹配的行,而数据列应该只有“7_”值。


Row No  Name  data
1       ABC    4_6035;9_47;7_113838;0_14
2       xyz    0_6035;7_145
3       MNO    4_6035;5_47;8_113838;7_14
4       PPP    0_6035;5_145 

Output I am looking for is 

Row No  Name  data
1       ABC    7_113838
2       xyz    7_145
3       MNO    7_14

Please help.

2 个答案:

答案 0 :(得分:1)

^(?=.*\\b7_).*$

你可以尝试一下。参见演示。

https://regex101.com/r/oL9kE8/10

答案 1 :(得分:0)

试试这个

within(df[grep("7_", df$data, fixed = TRUE), ], 
       data <- sub(".*?(7_[^;]*).*", "\\1", data))
#   RowNo Name     data
# 1     1  ABC 7_113838
# 2     2  xyz    7_145
# 3     3  MNO     7_14