Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Presbiopia - la 43 ani ?

Termen transcriere autovehicul

Cazare Timisoara pe 4-5 zile

Primele zile ale internetului per...
 Ditra 25

Casti USB-C ptr A-54

Aplicatie medicala / asistent med...

De ce vor atația politicieni...
 ERR_ADDRESS_UNREACHABLE

Legea 18/1968 Se mai aplica?

Digi conectare 2 routere prin fir

Succesiune notar versus instanta ...
 Montaj aer conditionat in balcon ...

Cont curent mulți valuta far...

Sugestii plan casa

Experiente cu firme care cumpara ...
 

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,428
  • Î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

    46 ani

  • Grup: Senior Members
  • Posts: 33,216
  • Î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,233
  • Î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,940
  • Î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,428
  • Î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

Bun venit pe Forumul Softpedia!

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