r - 是否有一个 R 函数可以用相同长度的字符串替换匹配的 RegEx?
问题描述
我有一个矢量图
test <- c("NNNCTCGTNNNGTCGTNN", "NNNNNCGTNNNGTCGTGN")
我想用相同的长度“ - ”替换所有元素头部的所有N。当我使用函数时,只用一个“-”替换。gsub
gsub("^N+", "-", test)
# [1] "-CTCGTNNNGTCGTNN" "-CGTNNNGTCGTGN"
但我希望结果看起来像这样
# "---CTCGTNNNGTCGTNN", "-----CGTNNNGTCGTGN"
是否有任何 R 函数可以做到这一点?感谢您的耐心和建议。
解决方案
你可以写:
test <- c("NNNCTCGTNNNGTCGTNN", "NNNNNCGTNNNGTCGTGN", "XNNNNNCGTNNNGTCGTGN")
gsub("\\GN", "-", perl=TRUE, test)
返回:
"---CTCGTNNNGTCGTNN" "-----CGTNNNGTCGTGN" "XNNNNNCGTNNNGTCGTGN"
\G
,由 Perl(以及 PCRE (PHP)、Ruby、Python 的 PyPI 正则表达式引擎等)支持,断言当前位置在第一个匹配的字符串的开头,然后在前一个匹配的结尾。
如果字符串是"NNNCTCGTNNNGTCGTNN"
前三个"N"
,每个都将被匹配(并用连字符替换gsub
),那么匹配的尝试"C"
将失败,终止匹配和字符串替换。
推荐阅读
- python-3.x - 如何使用 msvcrt 和 colorama 在屏幕上移动功能?
- amazon-web-services - 如何使用 s3 阶段集成将数据插入雪花
- python - 尝试在 KivyMD 中删除小部件时出错
- python - 如果找到了从字典中获取特定密钥的最快方法
- r - 宽格式数据帧到时间序列数据帧
- reactjs - 如何向 API 发出此动态 URL 请求?
- python - 检查日期是否存在于数据框中,否则附加它
- node.js - Mongoose 从 subDocument 中检索数组
- python - 每隔 15 分钟安排一次来自 salesforce 的呼叫数据
- ios15 - Xcode 13 警告 - [NSKeyedUnarchiver validateAllowedClass:forKey:]