我有一个字符串,我想提取字符/数字混合的第一个实例 - 即下面屏幕分辨率的第一个实例。
要匹配的字符串
scrn <- " dimensions: 1280x800 pixels (338x211 millimeters)"
我希望获得带有条目c(1280, 800)
我可以用
做相当笨拙的事strsplit(sapply(strsplit(scrn, " "), "[", 7),"x", scrn)
我通过查看7
输出了解strsplit
。
但我假设有一个简洁的正则表达方式来做到这一点
我的尝试fwiw(我需要分开几次)
gsub("[[:alpha:]]{2,}|(\\:)*(\\s) ", "", scrn)
答案 0 :(得分:1)
这是你的意思吗?
sub('scrn\\s*<-\\s*"\\s*dimensions:\\s*(\\d+)x(\\d+)', "c(\\1,\\2)", subject, perl=TRUE);
输出:
c(1280,800)
答案 1 :(得分:1)
在@ {zx81提示(\\d+)x(\\d+)
之后,这可以相当整齐地完成
scrn <- " dimensions: 1280x800 pixels (338x211 millimeters)"
g <- regexec("(\\d+)x(\\d+)", scrn)
unlist(regmatches( scrn, g ))[-1]