Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
RPL2021: Instructiuni auto-recenzare

Info Coronavirus/Vaccin vs. Fake News

Ajutor pentru refugiatii ucraineni

Cum sa gasesti avocat asa repede ...
 Recomandare BMW X3, buget 30K Euro

ANAF Zile lucratoare mai 2022/ de...

baterie laptop nou

Unde incarci butelia cu argon pen...
 Munteanu Gheorghe Piatra Neamt Lu...

Rammstein - Dicke Titten

Ce este asta?

Retinut permis fara proces verbal
 Salamander sau Aluplast

Cumparare stocuri de la firme in ...

setup minidlna pe linux mint

Caut scurtmetraje romanești
 

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: 219
  • Î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: 27,298
  • Î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

    44 ani

  • Grup: Senior Members
  • Posts: 28,678
  • Î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: 28,848
  • Î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: 6,806
  • Înscris: 24.04.2013
Matches. Ca sa obtii toate potrivirile deodata.

#6
ursudepadure

ursudepadure

    Junior Member

  • Grup: Members
  • Posts: 219
  • Î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: 27,298
  • Î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