r语言 - 尝试从包含特殊字符的主字符串中提取子字符串



我正在尝试从以下字符串中提取子字符串:

x <- "U1+ ^Eucalyptus baxteri s.s.,Eucalyptus viminalis subsp. cygnetensis\^tree\7\i;U2 Acacia melanoxylon,Banksia marginata\tree\7\i;M1 ^Leucopogon parviflorus,Spyridium parvifolium,Leucopogon lanceolatus var. lanceolatus\^shrub\4\r;M2 Xanthorrhoea minor subsp. lutea,Pteridium esculentum,Billardiera scandens\fern,grass-tree,vine\3\i;G1 ^Veronica calycina,Brunonia australis,Deyeuxia quadriseta,Dianella revoluta var. revoluta s.l.,Dichelachne crinita\rush,^forb,tussock grass,other grass,sedge\2\c;G2 Lagenophora stipitata,Luzula meridionalis,Lomandra nana,Pimelea humilis,Acrotriche serrulata\rush,heath shrub,forb,vine,sedge\1\i"

我希望提取6c作为^tree之后立即出现的子集,但是,我面临使用sub()函数的问题,这可能与主字符串中存在的特殊字符有关。如有任何帮助,不胜感激。

sub(".*?\^tree([^;]+).*", "\1", x)
[1] "\7\i"

注意,双反斜杠只是一个单字面值的反斜杠。

cat(sub(".*?\^tree([^;]+).*", "\1", x))
7i

最新更新