Avatar billede chrisrj Forsker
23. august 2017 - 17:17 Der er 1 kommentar og
1 løsning

Besværligt string formatering

Hejsa


Jeg har et antal strings jeg skal omformatere.

Eksempler:
A) "Passager NEED 1 Passagersæde OR  1 Taxasæde NEED 500 Kassebeholdning OR "
B) "Train REQUIRE 1 Trinbræt OR  Station AND  Track AND  OR "
C) "Train PROVIDE 1 Passagervogn PROVIDE 250 Passagersæde OR  1 Cykelvogn PROVIDE 200 Passagersæde Cykelvogn PROVIDE 30 Cykelplads OR "


A er nem nok - bare slet alt efter Taxasæde
B er lidt tricky: først skal AND OR i enden væk (nemt nok). Men derefter skal linien splittes op i to så det kommer til at se således ud:
B1) "Train REQUIRE 1 Trinbræt"
B2) "Train REQUIRE Station AND Track"
C er mest besværlig. Den skal ende med at se således ud:
C1) "Train PROVIDE 1 Passagervogn"
C2) "Train PROVIDE 1 Cykelvogn"

Ordene med stort er keywords, resten er dynamisk. Der er ikke nødvendigvis tal i, og tallene kan være vilkårligt store.
Der kan sagtens være længere sætninger end de viste, men det er hvad jeg har lige nu.

Jeg vil helst undgå regex, så en mere læsevenlig kode, ville være et hit. :)
Avatar billede S. Enevoldsen Juniormester
24. august 2017 - 15:57 #1
Altså jeg er kommet frem til noget der virker dine eksempler her. Men uden at kende de generelle regler for omskrivningen vil det nok ikke virke generelt: http://rextester.com/XDYMQ88252

Det ligner at det er fra den træ-(graf)-struktur du har postet om tidligere. I såfald vil det nok være nemmere at danne dine strenge direkte derfra i stedet for at omskrive dem.
Avatar billede chrisrj Forsker
24. august 2017 - 17:24 #2
Hejsa

Tak for din indsats! :)

"Desværre" har jeg lige netop for 3 min siden færdiggjort min egen løsning. :D

Men jeg vil da helt klart kigge meget på din løsning, hvis (når) min fejler! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester