我想从字符串中检索第一个数字(此处为> 344002):
string <- '<a href="/Archiv-Suche/!344002&s=&SuchRahmen=Print/" ratiourl-ressource="344002"'
我最好找一个正则表达式,它在查找后面的数字!在&amp; amp。之前
我想出的就是这个,但是这就抓住了!同样(!344002):
regmatches(string, gregexpr("\\!([[:digit:]]+)", string, perl =TRUE))
有什么想法吗?
答案 0 :(得分:3)
使用this regex:
(?<=\!)\d+(?=&)
使用此代码:
regmatches(string, gregexpr("(?<=\!)\d+(?=&)", string, perl=TRUE))
(?<=\!)
是一个后视,匹配将在!
\d+
匹配一位或多位(?=&)
,则&
会停止匹配
答案 1 :(得分:0)
library(gsubfn)
strapplyc(string, "!(\\d+)")[[1]]
旧答案]
测试此代码。
library(stringr)
str_extract(string, "[0-9]+")
这里有类似的问题和答案
答案 2 :(得分:0)
您可以捕获 \d+
和!
之间的数字(&
)并通过regexec
/ regmatches
获取:
> string <- '<a href="/Archiv-Suche/!344002&s=&SuchRahmen=Print/" ratiourl-ressource="344002"'
> pattern = "!(\\d+)&"
> res <- unlist(regmatches(string,regexec(pattern,string)))
> res[2]
[1] "344002"