Jak za pomocą wyrażenia regularnego wyjąć ze zdania wyrażenie?

0

Uczyłem się kilka lat pythona, ale w delphi regexy chyba się inaczej pisze. Mam zdanie:

Ala ma zielonego psa i "kota".

Jak pobrac z tego zdania:

Ala ma psa i kota.
0

\b\w{1,5}\b

1

Co konkretnie chcesz wykluczyć / znaleźć?

0

Napisałem:

Ala ma psa i kota.
2

No ok, czyli chcesz wykluczyć:
a) wszystkie wyrazy zaczynające się na z,
b) wszystkie wyrazy zaczynające się na zi,
...
aa) wszystkie wyrazy zawierające elo,
...
ba) wszystkie wyrazy dłuższe od 4 znaków,
bb) wszystkie wyrazy dłuższe od 5 znaków,
...
ca) konkretny wyraz: zielonego,
...

Kombinacji jest naprawdę wiele.

0

W pythonie to jest tak:

data = 'Ala ma zielonego psa , kangura i "kota".'
m = re.compile('^(.+?)zielonego(.+?),.+?"(.+?)"').findall(data)
if m: 
   print m[0][0] + m[0][1] + m[0][2]
0

Nie wystarczy tak:

 s := 'Ala ma zielonego psa i "kota"';
 x := 'zielonego ';
 Delete(s, Pos(x, s), length(x));

?

0

Nie tak. Trzeba jeszcze usunąć '"'. Już mam rozwiązanie.

function ExtractHtml(const AInputString : string) : string;
const
  HtmlRE = '^(.+?)zielonego(.+?)i "(.+?)"''';
var
  R : TRegExpr;
begin
  Result := '';
  R := TRegExpr.Create;
  try
    R.Expression := HtmlRE;

    if R.Exec(AInputString) then
      Result := R.Match[1] + R.Match[2] + R.Match[3]
  finally
    R.Free;
  end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1