第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

正則表達(dá)式 - 在給定數(shù)量的 3 個(gè)字母序列之后,如何匹配特定的 3 個(gè)字母序列?

正則表達(dá)式 - 在給定數(shù)量的 3 個(gè)字母序列之后,如何匹配特定的 3 個(gè)字母序列?

慕慕森 2022-05-26 15:35:17
我正在學(xué)習(xí)遺傳學(xué),并且想知道如何獲取一些 DNA 數(shù)據(jù)的第 248 個(gè) 3 字母序列,我正在嘗試找到一個(gè)正則表達(dá)式來(lái)匹配它。數(shù)據(jù)塊在每行的開頭也有數(shù)字,需要與空格一起排除,在排序中只計(jì)算字母。基本上每3個(gè)字母算一個(gè)序列,我想找到第248個(gè)序列。數(shù)據(jù)也是字符串格式。                              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任何幫助都會(huì)很棒!我把頭發(fā)拉出來(lái)
查看完整描述

3 回答

?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊

直接匹配數(shù)據(jù)塊的一種方法是補(bǔ)償數(shù)字和空格,同時(shí)[acgt]根據(jù)您需要的次數(shù)匹配和捕獲類的三個(gè)字符的所有序列。只有最近的捕獲可用。與 一起使用的示例preg_match:


/\A(?:((?:[\s\d]*[acgt]){3})){248}/m

請(qǐng)參閱正則表達(dá)式演示。


在代碼中:


$re = '/\A(?:((?:[\s\d]*[acgt]){3})){248}/m';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

var_dump($matches);

輸出(簡(jiǎn)化):


array(1) { [0]=> array(2) { [0]=> string(...) " atgg...cgg" [1]=> string(3) "cgg" } }

OR如果您只想直接匹配目標(biāo),則此表達(dá)式的變體:


/\A(?:(?:[\s\d]*[acgt]){3}){247}\K(?:[\s\d]*[acgt]){3}/m

\K讓引擎記住最后一場(chǎng)比賽的位置,但丟棄那場(chǎng)比賽的內(nèi)容直到那一刻。請(qǐng)參閱正則表達(dá)式演示。


在代碼中:


$re = '/\A(?:(?:[\s\d]*[acgt]){3}){247}\K(?:[\s\d]*[acgt]){3}/m';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

var_dump($matches);

輸出:


array(1) { [0]=> array(1) { [0]=> string(3) "cgg" } }

很高興看到這個(gè)問(wèn)題重新打開。:)


查看完整回答
反對(duì) 回復(fù) 2022-05-26
?
喵喔喔

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊

使用 JavaScript,您可以刪除空格和數(shù)字,string.replace()然后獲取第n 個(gè)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,您可以刪除空格和數(shù)字,preg_replace()然后將字符串拆分為 3 字母字符串?dāng)?shù)組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];

有關(guān)演示,請(qǐng)參見https://3v4l.org/9mpcE 。


附錄:


我剛剛注意到您似乎正在專門尋找正則表達(dá)式解決方案。但是,從我的回答中可以看出,沒有必要使用正則表達(dá)式來(lái)匹配/獲取第n 個(gè)3 字母序列,我認(rèn)為使用string.substring()(在 JS 中)或str_split()(在 PHP 中)比使用復(fù)雜的正則表達(dá)式模式。然而,正則表達(dá)式是從數(shù)據(jù)字符串中刪除空格和數(shù)字的有效選擇。


查看完整回答
反對(duì) 回復(fù) 2022-05-26
?
FFIVE

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

一種方法是匹配模式的 n-1 次出現(xiàn),然后捕獲隨后的出現(xiàn)。


$pattern = '/

 (?(DEFINE)(?<sequence>(?:[a-z][^a-z]*){3})) # define a pattern for a 3 letter sequence

 (?&sequence){247} # consume 247 occurrences 

 (?<match>(?&sequence)) # match 248th occurrence

/x';


if (preg_match($pattern, $data, $matches)) {

  var_dump(preg_replace('/[^a-z]+/', '', $matches['match']));

}


查看完整回答
反對(duì) 回復(fù) 2022-05-26
  • 3 回答
  • 0 關(guān)注
  • 220 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)