我想从字符串中删除所有的数字和逗号,除了紧跟在$之前的任何数字和紧跟在逗号后面的任何数字。
例如,我有:
str = "1, $100-$1,000 2, $1001-$10,000 3, $10,001-$100,000"
我想获得以下资料:
"$100-$1,000 $1001-$10,000 $10,001-$100,000"
我尝试过使用带有负查找功能的gsub
new_str = gsub("(?<!\\$)[0-9]*,", "", str)
但是,这会产生以下错误消息:
Error in gsub("(?<!\\$)[0-9]*,", "", str) : invalid regular expression '(<!\$)[0-9]*,', reason 'Invalid regexp'
看起来负值看起来是错误的编码,但我似乎不知道为什么。任何帮助都是非常感谢的!
发布于 2015-02-06 13:01:38
1) --在示例字符串的情况下,给出了所需的答案:
gsub("\\d+, ", "", str)
## [1] "$100-$1,000 $1001-$10,000 $10,001-$100,000"
正则表达式可视化
\d+,
2)这里是第二种方法:
library(gsubfn)
paste(strapplyc(str, "(\\$\\S+)", simplify = c), collapse = " ")
## [1] "$100-$1,000 $1001-$10,000 $10,001-$100,000"
正则表达式可视化
(\$\S+)
发布于 2015-02-06 13:13:05
https://stackoverflow.com/questions/28374655
复制相似问题