要清除從網頁上刮掉的文本,我運行了gsub()來替換那些冗餘符號。在這個過程中,我使用擴展正則表達式(如[:blank:], [:digit:], [:print:]
等)。但是它們取代了目標文本中的字母,而且它們在實際中應該是不可行的。擴展正則表達式只用於「模式」,而不是「替換」?
pg<-"http://www.irgrid.ac.cn/handle/1471x/1066693?mode=full&submit_simple=Show+full+item+record"
library(XML)
MetaNode <- getNodeSet(htmlParse(pg), '//table[@class="itemDisplayTable"]')
meta_label <- xpathSApply(MetaNode[[1]], './/td[@class="metadataFieldLabel"]', xmlValue)
meta_label <- gsub("[[:blank:]]+", "[:blank:]", meta_label)
meta_label <- gsub("[[:punct:]]+", "", meta_label)
meta_label
[1] 「Titleblank」[2] 「Authorblank」
[3] 「IssuedblankDateblank」[4] 「Sourceblank」
[5] 「IndexedblankTypeblank」[6] 「ContentblankTypeblank」 [7] 「URI標識空白」
[8] 「OpenblankAccessblank \ r \ nTypeblank」[9] 「fulltextblankversionblank \ r \ nblanktypeblank」[10] 「專題空白」
- 那些擴展正則表達式是否僅在函數的「模式」 參數中使用,但不能在「替換」中使用?
- 像「\ r」,「\ n」這樣的特殊符號有它們的擴展常規 表達式?
我試過擴展正則表達式的不同形式,發現使用不同的括號可能會有不同的效果,例如()或[],一個或兩個([[]])。有沒有關於這方面的文件? –