Wyrażenia regularne do wyodrębnienia cyfr z części linku.

0

Potrzebuję wyciągnąć cyfry z linków za pomocą wyrażeń regularnych w Delphi:

<option value="http://strona.pl/odpowiedzi/779204930/" >
<option value="http://strona.pl/odpowiedzi/563186213/" >
<option value="http://strona.pl/odpowiedzi/426548989/" >
<option value="http://strona.pl/odpowiedzi/789541210/" >

Robię tak:

Match := TRegEx.Match(Form1.Memo1.Text, '<option value="http://strona.pl/odpowiedzi/^[0-9]{9}$/" >');

Nie działa, gdzie jest błąd?

1

Użyj jakiegoś edytora regexów online, a nie baw się w zgadywanie wyrażeń.

0

Np. RegexBuddy

0

Pytający totalnie nie zna elementarnych podstaw wyrażeń regularnych i nie zdaje sobie sprawy ze znaczenia takich operatorów jak ., ^ i $. Według mnie najprostsze wyrażenie, jeżeli już potrzebujesz dla potwierdzenia również początku tekstu przed samymi cyframi powinno wyglądać tak: <option value="http:\/\/strona\.pl\/odpowiedzi\/[0-9]{9}\/" >. Przynajmniej na szybko pogląd plików w FARze znajduje mi te linijki po tym RegExpie bez problemów dla powyższego zapytania.

0
const
  REGEX_PATTERN = '/([0-9]{9})/'; //to zadziala jezeli sa tylko cyfry i jest ich dokladnie 9
var
  Match: TMatch;
begin
  for Match in TRegEx.Matches(Memo1.Text, REGEX_PATTERN) do
    ListBox1.Items.Add(Match.Groups[1].Value);
end;

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