2017-03-04 59 views
0

我有一列字符串,例如,如何在gsub替换中使用通配符

strings <- c("SometextPO0001moretext", "SometextPO0008moretext") 

'sometext'和'moretext'部分的长度是可变的。我想删除PO000 *部分的字符串,其中*是通配符。我试过

gsub("PO000*", "", strings) 

和谷歌搜索了很多,但令人惊讶的是还没有找到这个看似简单的问题的答案。由于最后一个字符不同,我希望能够以这种方式进行删除,而不是对大量变体进行硬编码。任何帮助,将不胜感激!

回答

2

对于单个通配符卡,您需要使用.。您使用的*对于最后一个字符为0重复0次或更多次。

gsub("PO000.", "", strings)将同时删除PO0001PO0008

1

我觉得应该是gsub("PO000\\d{1}", "", strings) ,其结果是:

[1] "Sometextmoretext" "Sometextmoretext" 
+0

谢谢,这个问题的答案也适用。获得第一个,因为它更简单 – kng229

+0

@ kng229好,他的回答更详细,我只是发布我的想法。 –