匹配 gsub 模式中的下一个符号
matching the next symbol in gsub pattern
有一个看起来像这样的简化示例字符串:
string = "AA: 1%, BB: 2%, CC: 3%, DD: 4% and EE: 5%."
我想通过模式匹配来替换它的一部分。我尝试以这种方式使用 gsub:
gsub("(BB{1}.*%{1}), ","BB: no data, ",string)
但是 returns 下一个:
"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)
有一个看起来像这样的简化示例字符串:
string = "AA: 1%, BB: 2%, CC: 3%, DD: 4% and EE: 5%."
我想通过模式匹配来替换它的一部分。我尝试以这种方式使用 gsub:
gsub("(BB{1}.*%{1}), ","BB: no data, ",string)
但是 returns 下一个:
"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)