Gjest Slettet-qfohT7 Skrevet 24. april 2008 Del Skrevet 24. april 2008 Jeg skal søke etter noen tekstmønster i en fil, og er litt usikker på hvordan jeg skal angripe det beste mulig. Skal søker etter strenger i formatet D,xxx,yyy, og også A,xxx,yyy hvor variablene kan ha ulik lengde. Så da tenkte jeg at regulære uttrykk kanskje var perfekt til dette formålet, men finnes dette allerede innebygget i C++ ? Jeg søkte en del på nettet, men ble ikke så veldig klok.. Eller finnes det noen bedre og enklere alternativer til regexpr, som f.eks avanserte søkemuligheter i tekst ? På forhånd takk Lenke til kommentar
teflonpanne Skrevet 24. april 2008 Del Skrevet 24. april 2008 Finnes ikke i C++ nei. For C++ fins http://www.boost.org/doc/libs/1_35_0/libs/...html/index.html . Dette kommer forøvrig (hvis jeg husker riktig) til å bli en del av neste versjon av C++ når den kommer neste år. Du kan likegjerne laste ned boost først som sist, veldig mye bra der og mye av det kommer med i neste versjon av C++ (smart pointers, regex, threads er noe av det jeg husker) så det er greit å bli litt kjent med biblioteket. Ellers fins det mange eksterne C-regex-biblioteker (google), bl.a. http://www.pcre.org/ Lenke til kommentar
GeirGrusom Skrevet 25. april 2008 Del Skrevet 25. april 2008 Det er vel også et eget POSIX regex bibliotek for C? Lenke til kommentar
Gjest Slettet-qfohT7 Skrevet 26. april 2008 Del Skrevet 26. april 2008 (endret) @Teflonpanne Boost så ut som et ganske greitt bibliotek å bruke. Etter en del roting har jeg nå installert det via pakkesystemet, men fikk problemer under kompilering av de enkleste ting.. /usr/include/boost/regex/v4/basic_regex.hpp:254: undefined reference to `boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::do_assign(char const*, char const*, unsigned int)' og da er hele koden så enkel som dette: static const boost::regex re("\\d"); Noen ide ? Google gjorde meg ikke noe særlig klok denne gangen.. Endret 26. april 2008 av Slettet-qfohT7 Lenke til kommentar
Dead_Rabbit Skrevet 27. april 2008 Del Skrevet 27. april 2008 Når det er "undefined reference" det er snakk om, betyr det at kompilatoren ikke finner en definisjon for funksjonen du bruker. Det betyr ofte at du glemmer å linke med et bibliotek. Lenke til kommentar
teflonpanne Skrevet 27. april 2008 Del Skrevet 27. april 2008 GeirGrusom, nja.. det er et GNU-bibliotek som implementerer POSIX-regex'er ihvertfall tror jeg. Zevs, det staalezh sa er nok rikitg. Sjekk hvilke biblioteker du må linke mot. Det er godt mulig du må kompilere boost-biblioteket for å få disse bibliotekene. Hvilket pakkesystem brukte du? Da er det godt mulig du ikke trenger å kompilere boost. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå