r - 匹配 gsub 模式中的下一个符号
问题描述
有一个看起来像这样的简化示例字符串:
string = "AA: 1%, BB: 2%, CC: 3%, DD: 4% and EE: 5%."
我想通过匹配模式来替换它的一部分。我尝试以这种方式使用 gsub:
gsub("(BB{1}.*%{1}), ","BB: no data, ",string)
但它返回下一个:
"AA: 1%, BB: no data, DD: 4% and EE: 5%."
%
就好像它正在从头到尾寻找符号。我想替换到下一个%
,而不是最后一个,保留 CC 部分。所需的输出:
"AA: 1%, BB: no data, CC: 3%, DD: 4% and EE: 5%."
这类问题通常被标记为重复。我一直在寻找半小时而一无所获,所以我决定询问一些正则表达式大师是否可以提供帮助。
解决方案
怎么样:
gsub("(BB: )\\d%","\\1no data", string)
推荐阅读
- rest - 如何通过其 HTTP API 在 ArangoDB 中创建哈希索引
- json - Apex:获取用户输入,然后将此输入发送到以 JSON 形式返回输出的外部 API - Salesforce
- sql - 我的 Oracle SQL 想要提高性能
- django - 表单验证不适用于在 django 1.11 中添加图像
- ios - 无需动画返回滑动按钮即可呈现警报
- javascript - 按钮跳转到下一个锚点
- .htaccess - 如何使用.htaccess 将域文件夹直接重定向到域?
- java - 从 List 获取处理案例的服务
- javascript - 如何编写将调用可能包含引号的变量字符串的公式?
- c# - C#忽略部分字符串拆分