Hämta värde mellan två punkter

Java

8 svar · 371 visningar · startad av LilleSkutt

Medlem sedan feb. 2001265 inlägg
Trådstart#1

Halloj!

Jag har en textfil med en massa text, där det även finns olika markeringar, t.ex.
[sport]text som har en koppling till sport[/sport]

Kan man på något smidigt sätt hämta informationen mellan [sport]?

Jag har suttit o klurat med loopar, men det vill sig itne riktigt...

Medlem sedan nov. 2000199 inlägg
#2

Använd en java.io.StreamTokenizer

Medlem sedan feb. 2001265 inlägg
#3

OK, nu har jag banne mig letat igenom ett antal miljarder dokument på java.sun.com (Känns det som..), men jag får inte StreamTokenizer att funka.

Skulle man kunna få en smakkåd? :)

Medlem sedan maj 20017 inlägg
#4

Om du bara har XML-liknande taggar kan du ju använda en XML-parser, t.ex. Xalan på www.apache.org

Medlem sedan feb. 2001265 inlägg
#5

Nej, det vill jag helst undvika... Jag har en massa text med enstaka taggar i. Har försökt med StringTokenizer, men det vill sig inte.

Medlem sedan nov. 2000199 inlägg
#6

Förstår inte vad problemet är. Använd resetSyntax för att gör alla bokstäver till ordinarie. Använd sedan whitespaceChar för att tala om att [ och ] är whitespace.

Sedan är det bara att läsa token för token och hålla reda om du är i ett definition, värde eller avslut av en definition.

Om du har dessa spridda bland annat så kan du alltid kolla första tecknet i varje token för att se om det är ett / och i så fall inse att det betyder att du nått slutet på en definition. Dvs föregående token är då värdet "text som har en koppling till sport" och token före det är då "sport".

Medlem sedan feb. 2001265 inlägg
#7

Nu är inte jag någon expert på Java, än, så jag hängde inte riktigt med i dina svängar... Skulle du kunna ge ett konkret exempel så skulle jag bli glad!

Medlem sedan feb. 2001265 inlägg
#8

Nån borde väl kunna svara? komijen nu :)

Medlem sedan juni 20008 205 inlägg
#9

Jaja... kolla på Apache, jag har för mig att de hade regexp-klasser till java förut... om de använder samma syntax som vanliga regexpar borde mönstret bli /\[sport\]([\s\S]+)\[\/sport\]/.

266 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)