Gå til innhold

Regulære uttrykk innebygget ?


Gjest Slettet-qfohT7

Anbefalte innlegg

Gjest Slettet-qfohT7

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
Videoannonse
Annonse

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
Gjest Slettet-qfohT7

@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 av Slettet-qfohT7
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...