Gå til innhold

[Løst]Begrense streng ved hjelp av regexp


Anbefalte innlegg

Skrevet (endret)

Usikker på om dette er rette kategori å spørre om dette i, men det er ingen egen kategori for regexp og det er trossalt i et java prosjekt jeg skal bruke det.

 

Jeg holder på å skrive et program som skal sortere elementer basert på filtre definert ved regexp, så jeg trenger en måte å klippe/begrense tekst strenger ved hjelp av regexp.

 

En problemstilling:

Jeg har et regexp som begrenser elementer til en kategori, altså et regexp som er til felles for en mengde elementer. Ut av den mengden elementer ønsker jeg å trekke ut en særegenhet i elementnavnet.

Hvis element navnet har denne strukturen: <egen_navn><kategori><...>, kan jeg da beskrive egennavnet i regexp ved "alt før <kategori>", i selve regexp?

 

Grunnen til at jeg ønsker regexp til å trekke ut egen navnet er fordi programmet skal være generisk og skal kunne ta inn filtre fra bruker.

 

Håper noen kan hjelpe meg på vei :)

Endret av Mapster
Videoannonse
Annonse
  • 3 uker senere...
Skrevet

Tviler sterkt på at vi skulle hatt bruk for regex i inf102.. :p

OT, skjønte egentlig ikke helt hva du mente. Kan du komme med et spesifikt eksempel?

Skrevet

Dette er egentlig lettere enn du tror. Hvis du har lest deg opp litt på regex vet du at man kan definere backreferences via paranteser.

 

I ditt tilfelle vil følgende regex holde:

 

"(.*egennavn.*)kategori"

 

I Matcher.groups(index) vil den første indeksen være hele matchet, mens de påfølgende vil være hver parantes:

 

0 => <egennavn><kategori

1 => <egennavn><

 

Du burde herifra fint klare å kvitte deg med <> om disse eksisterer i strengen din. Om dette er xml eller liknende, vær obs på newlines som kan krølle ting til. Da finnes det vel sikkert pakker som kan ta xml-parsing for deg ;)

 

//T

  • 3 uker senere...

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å
×
×
  • Opprett ny...