katal 30
Postad: 7 maj 21:13

Regex

Hej!

Lång historia kort behöver jag nog hjälp med hur man ska tolka följande:
"Skriv ett regex som matchar en sträng om och endast om den är en DNA-sekvens, dvs bara består av tecknen ACGT (endast stora bokstäver, ej acgt)."

Initialt tänker jag "^[ACGT]+$", men detta är tydligen fel och går ej genom tester. Tror det kan vara för att strängen matchar med enstaka bokstäver som A, C, ... .

Med det kommer nästa problem: Hur skulle det annars sitta ihop för att inte matcha med tom sträng och inte heller med färre än 4 bokstäver? 

Bubo 7098
Postad: 7 maj 21:31 Redigerad: 7 maj 21:31

Fyra är inte så många. Man kan helt brutalt skriva [ACGT][ACGT][ACGT]^[ACGT]+$ eller något i den stilen...

 

Man får vara lite elegantare om det skall vara minst 147 stycken...

katal 30
Postad: 7 maj 21:39
Bubo skrev:

Fyra är inte så många. Man kan helt brutalt skriva [ACGT][ACGT][ACGT]^[ACGT]+$ eller något i den stilen...

 

Man får vara lite elegantare om det skall vara minst 147 stycken...

Testade ^[ATCG]+[TCGA]+[CGAT]+[GATC]+$ när jag började känna mig desperat, men inte ens det gick genom. Fattar ingenting, hur krångligt ska det behöva vara?

Bubo 7098
Postad: 7 maj 21:58

Jag är inget vidare på regex, men man kan ha hjälp av https://regex101.com/ för att testa sig fram.

anders_k 235
Postad: 8 maj 08:39

Inte för att jag är en expert i DNA men det är väl bara vissa par som fungerar, AT och CG? Då kanske du istället skall titta efter sådana par och sålla bort ogiltliga kombinationer typ TC?

katal 30
Postad: 8 maj 08:59
anders_k skrev:

Inte för att jag är en expert i DNA men det är väl bara vissa par som fungerar, AT och CG? Då kanske du istället skall titta efter sådana par och sålla bort ogiltliga kombinationer typ TC?

Även testat ^(CG|AT)+$ , funkar inte heller. Mycket möjligt att det inte ens är ett regex problem, får börja skylla på hemsidan snart.

Laguna Online 29026
Postad: 8 maj 09:03

Har du löst någon tidigare sådan uppgift och fått det att fungera? En sida som bara säger rätt eller fel och ingenting mer känns som en mycket dålig idé för såna här uppgifter. 

katal 30
Postad: 8 maj 09:15
Laguna skrev:

Har du löst någon tidigare sådan uppgift och fått det att fungera? En sida som bara säger rätt eller fel och ingenting mer känns som en mycket dålig idé för såna här uppgifter. 

Alltså, jag har väl inte riktigt löst en liknande uppgift innan, men tycker ändå det känns ganska rakt på sak. Kan inte riktigt tänka mig att regexen på frågan är fel då det inte direkt är svårt på den här nivån... 

Laguna Online 29026
Postad: 8 maj 09:28

Det kan man tycka, men en del implementationer av regex har inte +, då måste man skriva [ACGT][ACGT]* i stället. En del kräver escapning av alla specialtecken, så man måste skriva \[ACGT\]. Du borde naturligtvis få veta exakt hur dina regexar ska vara beskaffade.

Svara Avbryt
Close