Gå til innhold

[JAVA] Trenger hjelp til Regex


Anbefalte innlegg

I programmet DigiDocflow hvor man kan OCR-scanne dokumenter og hente ut diverse data basert på forhåndsatte soner i en mal som jeg kan skrive direkte til en database (mysql i mitt tilfelle via ODBC tilkobling) kan jeg benytte meg av regular Expression. Men siden dette feltet ikke er min sterkeste side lurer jeg på om noen vet om 2 stk. type "snutter".

 

Den ene er å hente ut kun første bokstav fra hvert ord (i mitt tilfelle er det snakk om å hente ut forbokstavene i navnefeltet).

Den andre er å trimme whitespaces i begge kanter...

 

Noen som vet om noe slikt?

 

Gjerne også konvertere datoformat fra 22.08.2001 til 2011-08-22... Leser litt, men får det ikke ordentlig til, så tips her setter jeg stor pros på...

 

Takker på forhånd...

Endret av Yawa
Lenke til kommentar
Videoannonse
Annonse

Du sier ikke noe om språk.

Kan ta litt med python.

 

Den ene er å hente ut kun første bokstav fra hvert ord

>>> import re
>>> s = 'The quick brown fox jumps over the lazy dog'
>>> re.findall(r'\b[a-zA-Z]', s)
['T', 'q', 'b', 'f', 'j', 'o', 't', 'l', 'd']
>>> #Finne bare store bokstaver først i hvert ord
>>> s = 'The quick brown fox jumps over the lazy Dog'
>>> re.findall(r'\b[A-Z]', s)
['T', 'D']

Den andre er å trimme whitespaces i begge kanter...

>>> c = ' car '
>>> c
' car '
>>> re.sub(r'\s', '', c)
'car'
#Uten regex
>>> c = ' car '
>>> c.split()[0]
'car'

Gjerne også konvertere datoformat fra 22.08.2001 til 2011-08-22... Leser litt

>>> d = '22.08.2001'
>>> d = d.split('.')
>>> print '%s-%s-%s' % (d[2],d[1],d[0])
2001-08-22

import datetime, dateutil.parser

date = '22.08.2001'
d = dateutil.parser.parse(date)
print d.strftime('%Y-%m-%d') #2001-08-22

Endret av SNIPPSAT
Lenke til kommentar

Fjerne whitespaces:

 

String test = " hei ";

System.out.print(test.trim());

 

Første bokstav:

 

String test = "Per";

test.substring(0,1);

 

Gir første bokstav

 

EDIT:

trodde du kunne skrive java-kode inn der og, men om du bare kan bruke regexp er det en annen sak

 

Update:

Første bokstav:

^\D

Endret av rulleguru
Lenke til kommentar

Gjerne også konvertere datoformat fra 22.08.2001 til 2011-08-22... Leser litt, men får det ikke ordentlig til, så tips her setter jeg stor pros på...

 

Jeg kjenner ikke til DigiDocflow, men hvis du kan skrive Java kode kan du bruke SimpleDateFormat for å skrive om datostrengen.

 

public static String switchdate(final String indate) throws ParseException {
	SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
	Date mydate = sdf.parse(indate);
	sdf = new SimpleDateFormat("yyyy-MM-dd");
	return sdf.format(mydate);
}

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