试解"两个引号中间的字符"问题

2019-10-04  本文已影响0人  p1uxtar

昨天小洁老师在用warning信息为例,刷一波字符串技巧的文末提到如何用正则解决此问题。

今天下午决定试解:

  1. 先将字符串x逐行读取为xl
  2. 包名都在xl的偶数行,提取之;
  3. 最后提取每行中两个引号中间的字符:
xl <- read_lines(x)
xl <- xl[seq(2, length(xl), 2)]
gsub(".*‘([^’]*).*", "\\1", xl)

关于正则的思路,因为昨天的问题中是中文单引号,可以区分左右,故此问题可理解为,从左引号后第一个字符开始、到最后一个非右引号的字符。


若包名两侧为英文单引号,则字符串x直接读取时报错,可先写入文件~/test,思路与上述过程相同,正则略有不同,代码如下:

x <- read_lines("~/test")
xl <- read_lines(x)
xl <- xl[seq(2, length(xl), 2)]
gsub("[^\']*\'([^\']*).*", "\\1", xl)
上一篇 下一篇

猜你喜欢

热点阅读