Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Incalzire in pardoseala etapizata

Suprataxa card energie?!

Cum era nivelul de trai cam din a...

probleme cu ochelarii
 Impozite pe proprietati de anul v...

teava rezistenta panou apa calda

Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...
 Rezultat RMN

Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...

Lucruri inaintea vremurilor lor
 Discuții despre TVR Sport HD.

Cost abonament clinica privata

Tremura toata, dar nu de la ro...

Renault Android
 

Este cineva expert in regex? O intrebare rapida.

- - - - -
  • Please log in to reply
6 replies to this topic

#1
ursudepadure

ursudepadure

    Junior Member

  • Grup: Members
  • Posts: 232
  • Înscris: 28.04.2012
Se pare ca numai eu intreb pe aici,  ca sunt mai tobosar.

AM UN REGEX CARE IMI EXTRAGE DATELE CALENDARISTICE DINTR-UN TEXT PLIN DE DATE CALENDARISTICE.
   pattern = @"(\b\d{1,2}\D{0,3})?\b(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|(Nov|Dec)(?:ember)?)\D?(\d{1,2}\D?)?\D?((19[7-9]\d|20\d{2})|\d{2})";

    input = textdates;
    Match m = Regex.Match(input, pattern, RegexOptions.IgnoreCase);
    if (m.Success)
    {
    date2words = m.Value;
  }

TOATE BUNE, DAR CODUL IMI  SCOATE DOAR PRIMA VALOARE. EU AS AVEA NEVOIE DE TOATE VALORILE PE CARE LE GASESTE IN TEXT.
Cand incerc pe acest tool online:

https://regex101.com/r/cO8lqs/5
Imi match-uie toate valorile care reprezinta o data calendaristica de forma dd MM yyyy sau MMMM´yyyy. Ei, nu conteaza ce match-uie, ideea este ca nu stiu cum sa extrag toate valorile din text care in acest caz reprezinta o data.
i.e
patern = cel de sus
Text = " blah blah blah s-a intamplat in October 2012 dar si in in data de March 1971 au fost inundatii, apoi in Decebrie 2012 lumea astepta extracterestrii, blah."
Eu am nevoie sa obtin un Aread de stringuri care sa arate cam asa:
date[1] = October 2012
date[2] = March 1971
etc...
Dupa care sa pot manipula datele obtinute dupa cum am nevoie.
Un mic ajutor ar fi bine venit. Am cautat pe net, dar cinstit nu am avut rabdare, nu am gasit decamdata decat pentru o singura valoare.
Multumesc anticipat, orice ajutor e bine venit.


#2
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,383
  • Înscris: 10.08.2005
pai, literalmente,  Decebrie nu este December
o sa-ti trebuiasca cate un pattern pentru fiecare zona geografica / (limba folosita)

#3
maccip

maccip

    45 ani

  • Grup: Senior Members
  • Posts: 33,066
  • Înscris: 06.01.2007
Nu de expert in regex ai tu nevoie.
Functia Regex.Match() iti gaseste prima potrivire. Pentru a le gasi pe toate, foloseste si tu Regex.Match(string, int, int) intr-o bucla in care potrivesti parametrii int, int functie de ce-ti returneaza Match-ul anterior.

Sau folosesti in bucla NextMatch()
https://docs.microso...text.regularexpressions.match.nextmatch?view=net-6.0#system-text-regularexpressions-match-nextmatch

#4
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,194
  • Înscris: 24.02.2007
https://docs.microso...text.regularexpressions.regex.matches?view=net-6.0#system-text-regularexpressions-regex-matches(system-string)

Edited by dani.user, 15 January 2022 - 15:43.


#5
sags

sags

    Senior Member

  • Grup: Senior Members
  • Posts: 9,847
  • Înscris: 24.04.2013
Matches. Ca sa obtii toate potrivirile deodata.

#6
ursudepadure

ursudepadure

    Junior Member

  • Grup: Members
  • Posts: 232
  • Înscris: 28.04.2012

View PostMarianG, on 15 ianuarie 2022 - 15:38, said:

pai, literalmente,  Decebrie nu este December
o sa-ti trebuiasca cate un pattern pentru fiecare zona geografica / (limba folosita)
Nu am nevoie decat pentru limba engleza, desigur.

View Postmaccip, on 15 ianuarie 2022 - 15:42, said:

Nu de expert in regex ai tu nevoie.
Functia Regex.Match() iti gaseste prima potrivire. Pentru a le gasi pe toate, foloseste si tu Regex.Match(string, int, int) intr-o bucla in care potrivesti parametrii int, int functie de ce-ti returneaza Match-ul anterior.

Sau folosesti in bucla NextMatch()
https://docs.microso...text.regularexpressions.match.nextmatch?view=net-6.0#system-text-regularexpressions-match-nextmatch

Asta era, multumesc.

#7
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,383
  • Înscris: 10.08.2005

View Postmaccip, on 15 ianuarie 2022 - 15:42, said:

Sau folosesti in bucla NextMatch()
https://docs.microso...text.regularexpressions.match.nextmatch?view=net-6.0#system-text-regularexpressions-match-nextmatch
https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.match.nextmatch?view=net-6.0#system-text-regularexpressions-match-nextmatch

View Postdani.user, on 15 ianuarie 2022 - 15:42, said:

https://docs.microso...text.regularexpressions.regex.matches?view=net-6.0#system-text-regularexpressions-regex-matches(system-string)
https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex.matches?view=net-6.0#system-text-regularexpressions-regex-matches(system-string)


Anunturi

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate