使用regexpr()gregexpr()和函数读取字符串内的特定字符串

regexpr(pattern,text)函数可以在字符串x中提取出特定字符串pattern的相关信息。其中pattern可以是字符串,也可以是一个正则表达式。例如:

a<-"GET /News.html HTTP/1.0 feed.html  HTTP/2.0"
b<-regexpr(".html",a);b
  [1] 10
  attr(,"match.length")
  [1] 5
  attr(,"useBytes")
  [1] TRUE

通过regexpr(".html",a),系统返回如下信息:

在字符串a中,第一个和字符串".html"匹配的起始位置为10。可以使用b[1]来直接读取。

在字符串a中,第一个和字符串".html"匹配的字符长度为5。可以使用attr(b,"match.length")或者b[[2]]来直接读取。

在字符串a中是否有字符串与".html"匹配,答案为TRUE。可以使用attr(b,"useBytes")来直接读取。

由上例可知,regexpr()函数只查询匹配第一个特定字符,要想多次匹配需要使用gregexpr()函数。例如:
a<-"GET /News.html HTTP/1.0 feed.html  HTTP/2.0"
b<-gregexpr(".html",a);b
  [[1]]
  [1] 10 29
  attr(,"match.length")
  [1] 5 5
  attr(,"useBytes")
  [1] TRUE

 注意

返回的b是一个列表,在直接读取起始位置时,可以使用b[[1]][1]来表示第一次匹配的起始位置,返回值是10。使用b[[1]][2]表示第2次匹配的起始位置,返回值是29。在直接读取匹配字符串长度时,可以使用attr(b[[1]],"match.length")以向量形式返回两次匹配的字符串长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值