【发布时间】:2013-05-11 17:35:11
【问题描述】:
是否可以在 dna 字符串上使用正则表达式进行查找/替换,这样它一次只考虑每 3 个字符(dna 的密码子)。
例如,我希望正则表达式看到这个:
dna="AAACCCTTTGGG"
像这样:
AAA CCC TTT GGG
如果我现在使用正则表达式并且表达式是
Regex.Replace(dna,"ACC","AAA") 它会找到匹配项,但在这种情况下,一次查看 3 个字符将没有匹配项。
这可能吗?
【问题讨论】:
-
为什么不在你的字符串本身的第三个位置插入一个空格(你显示的方式)然后运行你的正则表达式?
-
我不会为此使用正则表达式。使用基本操作来实现您正在寻找的逻辑应该不是很难。还可以考虑使用
StringBuilder(如果我怀疑这是 C#)来避免必须为每个替换复制并创建一个新字符串(因为 DNA 字符串可能非常大)。 -
在 Javascript 中,您可以得到一个密码子数组,如下所示:
'dna="AAACCCTTTGGG"'.match(/dna="(\w+)"/)[1].match(/\w{1,3}/g),然后您可以将数组连接成一个用空格分隔元素的字符串。