Используя JavaScript, , вы можете удалить пробелы и цифры с помощью string.replace()
, а затем получить nth 3-буквенную последовательность, например, с помощью string.substring()
:
const data = `
atggagga gccgcagtca gatcctagcg tcgagccccc
241 tctgagtcag gaaacatttt cagacctatg gaaactactt cctgaaaaca acgttctgtc
301 ccccttgccg tcccaagcaa tggatgattt gatgctgtcc ccggacgata ttgaacaatg
361 gttcactgaa gacccaggtc cagatgaagc tcccagaatg ccagaggctg ctccccccgt
421 ggcccctgca ccagcagctc ctacaccggc ggcccctgca ccagccccct cctggcccct
481 gtcatcttct gtcccttccc agaaaaccta ccagggcagc tacggtttcc gtctgggctt
541 cttgcattct gggacagcca agtctgtgac ttgcacgtac tcccctgccc tcaacaagat
601 gttttgccaa ctggccaaga cctgccctgt gcagctgtgg gttgattcca cacccccgcc
661 cggcacccgc gtccgcgcca tggccatcta caagcagtca cagcacatga cggaggttgt
721 gaggcgctgc ccccaccatg agcgctgctc agatagcgat ggtctggccc ctcctcagca
781 tcttatccga gtggaaggaa atttgcgtgt ggagtatttg gatgacagaa acacttttcg
841 acatagtgtg gtggtgccct atgagccgcc tgaggttggc tctgactgta ccaccatcca
901 ctacaactac atgtgtaaca gttcctgcat gggcggcatg aaccggaggc ccatcctcac
961 catcatcaca ctggaagact ccagtggtaa tctactggga cggaacagct ttgaggtgcg
1021 tgtttgtgcc tgtcctggga gagaccggcg cacagaggaa gagaatctcc gcaagaaagg
1081 ggagcctcac cacgagctgc ccccagggag cactaagcga gcactgccca acaacaccag
1141 ctcctctccc cagccaaaga agaaaccact ggatggagaa tatttcaccc ttcagatccg
1201 tgggcgtgag cgcttcgaga tgttccgaga gctgaatgag gccttggaac tcaaggatgc
1261 ccaggctggg aaggagccag gggggagcag ggctcactcc agccacctga agtccaaaaa
1321 gggtcagtct acctcccgcc ataaaaaact catgttcaag acagaagggc ctgactcaga
1381 ctga
`
function getNthSequence(n) {
const sequenceLength = 3
const startIndex = (n - 1) * sequenceLength
return data
.replace(/\s|\d/g, '')
.substring(startIndex, startIndex + sequenceLength)
}
console.log(getNthSequence(1))
console.log(getNthSequence(2))
console.log(getNthSequence(248))
Используя PHP, , вы можете удалить пробелы и цифры с помощью preg_replace()
, а затем разбить строку на массив из 3- буквенные строки с str_split()
:
<?php
$data = <<<DNA
atggagga gccgcagtca gatcctagcg tcgagccccc
241 tctgagtcag gaaacatttt cagacctatg gaaactactt cctgaaaaca acgttctgtc
301 ccccttgccg tcccaagcaa tggatgattt gatgctgtcc ccggacgata ttgaacaatg
...
DNA;
$sequences = preg_replace('/\s|\d/', '', $data);
$sequences = str_split($sequences, 3);
echo $sequences[0] . PHP_EOL;
echo $sequences[1] . PHP_EOL;
echo $sequences[247];
См. https://3v4l.org/9mpcE для демонстрации.
Добавление:
Я только что заметил, что вы, похоже, специально ищете решение для регулярных выражений. Однако, как видно из моего ответа, нет необходимости использовать регулярное выражение для сопоставления / получения 3-буквенной последовательности nth , и я бы сказал, что используя string.substring()
(в JS) или str_split()
(в PHP) чище и удобочитаемее, чем использование сложного шаблона регулярных выражений. Тем не менее, регулярное выражение является допустимым выбором для удаления пробелов и чисел из строки данных.