[问题叙述]:
请教各位先进,
我要从图案档名中拿数字以及括号中的数字部分。我的档名有两个规律性,目前我已经
可以各写1个pattern拿出我要的部分,希望有先进指点如何只用一个pattern就可以从这
2类档名中拿出数字及括号中数字部分。
number1_[number2,number3]
3个number的位数不是固定的。
[程式范例]:
我想从以下两类档名中拿出 "200330_[50706,13606]"
第1类档名例子: 档名在pattern之前有字串,字串里可能有数字,字母或special characters
x2 <- "B16F10 KO 200330_[50706,13606]_CD8_path_view.jpg"
gsub(pattern = ".*( )(\\d+_\\[\\d+,\\d+\\]).*"
,replacement= "\\2" # get pattern within the 2nd pair of brackets
,x=x2) # [1] "200330_[50706,13606]"
第2类档名例子: 档名以pattern开号
x3 <- "200330_[50706,13606]_CD8_path_view.jpg"
gsub(pattern = "(\\d+_\\[\\d+,\\d+\\]).*"
,replacement= "\\1" # get pattern within the 1st pair of brackets
,x=x3) # [1] "200330_[50706,13606]"
请教如何用1个pattern就能从x2, x3拿出200330_[50706,13606]?
很明显地,.* 不能描述没有东西。但我不知道为何以下的gsub只拿出1位数字
0_[50706,13606]?
gsub(pattern = ".*(\\d+_\\[\\d+,\\d+\\]).*"
,replacement= "\\1" # get pattern within the 1st pair of brackets
,x=x3) # [1] "0_[50706,13606]"
我把以上程式放在 hackMD里
https://hackmd.io/@Chang/string-manipulation-in-R
请看第一部分 Examples of subsetting numbers from image file names
谢谢指点