在R中的EURO符号后删除字符

时间:2015-07-08 09:22:58

标签: regex r gsub stringr

我在“euro”变量中保存了一个欧元符号:

euro <- "\u20AC"
euro
#[1] "€"

“eurosearch”变量包含“此SOW中定义的服务,价格为€15,896.80(如果执行”。

eurosearch
[1] "services as defined in this SOW at a price of € 15,896.80 (if executed fro"

我希望欧元符号后的字符为“15,896.80(如果执行后”) 我正在使用此代码:

gsub("^.*[euro]","",eurosearch)

但我得到空洞的结果。如何获得预期的输出?

2 个答案:

答案 0 :(得分:4)

使用基础r中的匹配项或tweetTextLabel?.attributedText = attributedString 中的str_extarct

stringr

> x <- "services as defined in this SOW at a price of € 15,896.80 (if executed fro"
> regmatches(x, regexpr("(?<=€ )\\S+", x, perl=T))
[1] "15,896.80"

使用变量。

> gsub("€ (\\S+)|.", "\\1", x)
[1] "15,896.80"

如果这个使用变量的答案对你不起作用,那么你需要设置编码,

euro <- "\u20AC"
gsub(paste(euro , "(\\S+)|."), "\\1", x) 

Source

答案 1 :(得分:1)

您只需使用paste0连接字符串即可在模式中使用变量:

gsub("([^A-Za-z_0-9])", "\\\\\\1", euro)

请参阅CodingGround demo

请注意,使用$我会转义任何非单词符号,以便{{1}}可以被视为文字,而不是特殊的正则表达式字符(取自this SO post)。