Autor Téma: Regular Expression knihovna  (Přečteno 519 krát)

Offline raul

  • Plnoletý
  • ***
  • Příspěvků: 175
  • Karma: 10
    • Verze Delphi: FPC :D
Regular Expression knihovna
« kdy: 29-03-2017, 11:13:42 »
Zdravim,
po veceru stravenem u googlu a pokusech a omylech o zprovozneni PerlRegEx (Win64) a mnoha chyb s linkovanim obj bych se rad pozeptal zkusenejsich.

Co pouzivate na RegExpr - modernejsiho nez tRegExpr (knihovna RegExpr (nutno prejmenovat nejakou v adresari OLD, kterou to nacitalo drive)). Pred lety - velmi mnoha jsem pouzival podobnou v delphi, ale pak jsem zacalpouzivat ten PerlRegExpr, ktery prece jen umi vic (pojmenovane groupy apod). Mam zakoupeny soft RegExBuddy na ladeni a ten zaroven vygeneruje regex pro ruzne typy implementaci, zdrojovy kod pro ruzne akce atd. Bohuzel aktualni verze jiz neumi tak zastaraly format - a realne si myslim, ze je to opravdu hodne stary kod.

Je tedy nekde nejaka zakopana knihovna, ci zpusob jak obecne rozbehat PerlRegEx (PCRE) na vice platformach (Linux/64, Win/64 idealne i arm/32).

Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

Offline ps

  • Nováček
  • *
  • Příspěvků: 45
  • Karma: 4
Re:Regular Expression knihovna
« Odpověď #1 kdy: 29-03-2017, 11:59:44 »
Ak nepotrebuješ úplne komplexný tak jednoznačne od BeRa FLRE : https://github.com/BeRo1985/flre
IDE: Delphi XE, Lazarus, OS:Win 8,Linux Mint

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 1761
  • Karma: 72
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Regular Expression knihovna
« Odpověď #2 kdy: 29-03-2017, 12:25:58 »
Myslel jsem, že multiplatformní System.RegularExpressions z Delphi je typu PerlReg, aspoň podle toho, že je tam třída TPerlRegEx, ale osobně se regulárním výrazům schválně vyhýbám.
Embarcadero MVP - Czech republic

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 1761
  • Karma: 72
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Regular Expression knihovna
« Odpověď #3 kdy: 29-03-2017, 12:26:40 »
Myslel jsem, že multiplatformní System.RegularExpressions z Delphi je typu PerlReg, aspoň podle toho, že je tam třída TPerlRegEx, ale osobně se regulárním výrazům schválně vyhýbám.

Aha ty chceš asi pro FPC. Tak nic.
Embarcadero MVP - Czech republic

Offline raul

  • Plnoletý
  • ***
  • Příspěvků: 175
  • Karma: 10
    • Verze Delphi: FPC :D
Re:Regular Expression knihovna
« Odpověď #4 kdy: 29-03-2017, 13:02:17 »
Myslel jsem, že multiplatformní System.RegularExpressions z Delphi je typu PerlReg, aspoň podle toho, že je tam třída TPerlRegEx, ale osobně se regulárním výrazům schválně vyhýbám.

Aha ty chceš asi pro FPC. Tak nic.

V delphi bych vedel, tam leta pouzivam prave toto. Je to dost kompatibilni a funkcni. Ovsem jiz rok v delphi nedelam a tudiz hledam pro FPC. Necekal jsem, ze takto zakladni vec bude problemem. Zatim pouzivam ten regexpr, ale je to takove.. U slozitejsich regexpu je rucne musim upravovat, coz nepridava.

Btw> proc se jim vyhybas ?? A jak resis podobne ulohy Radku ?
Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

Offline Petr H

  • Nováček
  • *
  • Příspěvků: 2
  • Karma: 0
    • Verze Delphi: 10.1
Re:Regular Expression knihovna
« Odpověď #5 kdy: 30-04-2017, 16:06:05 »
Dobrý den,
mám také problém s regulérním výrazem:
Kód: [Vybrat]
    regex.Create('(?(S\sS.+ \s0.00)HH|S\sS.+)');
    if regex.IsMatch(sVal) then begin
      sVal:= IntToStr(Ho) + ':' + IntToStr(Mi) + ':' + IntToStr(Se) + ';' + sVal;
Expresso jej zvládne, ale asi má Delphi jiný formát, nakopnete mne správným směrem? Díky

Offline pepak

  • Guru
  • *****
  • Příspěvků: 1297
  • Karma: 28
    • Pepak.net
Re:Regular Expression knihovna
« Odpověď #6 kdy: 30-04-2017, 21:42:01 »
Co podle tebe ten regulární výraz dělá? Tj. jaké očekáváš vstupy a jaké výstupy?

Na jaké variantě regexpů ho pouštíš?

Offline Petr H

  • Nováček
  • *
  • Příspěvků: 2
  • Karma: 0
    • Verze Delphi: 10.1
Re:Regular Expression knihovna
« Odpověď #7 kdy: 30-04-2017, 22:18:52 »
Padají mi do něj řádky textu pokud text odpovídá masce S?S?...?9.99(ne 0.00) pak očekévám true
regex používám vestavěný v Delphi.
teď koukám, že jsem se zatoulal do Lazaruse...

Offline pepak

  • Guru
  • *****
  • Příspěvků: 1297
  • Karma: 28
    • Pepak.net
Re:Regular Expression knihovna
« Odpověď #8 kdy: 01-05-2017, 06:23:32 »
Znovu: Uveď příklady vstupů. Přesně - to , co jsi napsal jako masku, neodpovídá vůbec tomu, co jsi výše uvedl jako regexp.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: