Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cabluri HDMI 2.1 de 4m-5m care sa...

zoom comparat cu Google Meet

Monitor/Display wireless?

Chestie ciudata
 De la un proiect scris in python ...

Audi A4 B9 quattro 190 CP!

Tepari la pariuri pe TikTok

Banca imi cere justificativ fondu...
 schema pcb ELECTRA CIM150 PAS

Probleme stomac

Sfat achizitie bicicleta oras

Canalele Sky Showtime 1 și S...
 Recomandare anvelope lexus rx

Extindere rețea wireless int...

Configuratie PC

Mufa TV
 

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,416
  • Î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,195
  • Î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,227
  • Î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,933
  • Î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,416
  • Î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

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

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