ADMin Портал!

Профиль



Добро пожаловать,
Гость

107.22.126.144

Регистрация или вход
Потеряли пароль?

Сейчас онлайн
Администраторы:0
Пользователей:0
Гостей:44
Поисковые боты:2

Всего:46

Кнопки




Исходный код

Статьи

Разное

То, что не удалось рассортировать в основные разделы.
Регулярные выражения в RAD XE
Разработчики, наконец-то, добавили в Embarcadero RAD XE возможность поддержки регулярных выражений, как это сделано в PHP уже давным давно.. Поэтому активно начинаем использовать.
Ниже приведен пример вытаскивания цифрового значения в квадратных скобках:

Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uses RegularExpressions;

procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.Text:= 'eksaek647dlgddek[43]gfd';
edit2.Text:= '[([0-9]{1,})]';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  m: TMatch;
begin
form1.Memo1.Lines.Clear;
  m := TRegEx.Match(edit1.Text,edit2.Text);
  while m.Success do
  begin
    form1.Memo1.Lines.Add('Index = '+inttostr(m.Index) + ' , Длина = ' + inttostr(m.Length) + ' , Значение: ' + m.value);
    m := m.NextMatch;
  end;

end;




if TregEx.IsMatch('Текст','Регулярка') Проверка на согответствие паттерну. Результат: True или False
Edit.Text := TregEx.Replace('Текст', 'Регулярка', ' ', [roIgnoreCase]); Замена текста согласно регулярке



Пример 1: Из строки вытащить все цифры

Код
1
2
eksaek647dlgddek[43]gfd
([0-9]{1,})


Результат:
Index = 7 , Длина = 3 , Значение: 647
Index = 18 , Длина = 2 , Значение: 43


Пример 2: Из строки вытащить все слова

Код
1
2
eksaek 647-dlgddek [43]gfd
(/b/w+/b)
p.s. дробь заменить на слешь

Index = 1 , Длина = 6 , Значение: eksaek
Index = 8 , Длина = 3 , Значение: 647
Index = 12 , Длина = 7 , Значение: dlgddek
Index = 21 , Длина = 2 , Значение: 43
Index = 24 , Длина = 3 , Значение: gfd
Дата публикации: 30.08.2015
Прочитано: 4486 раз
Нет комментариев. Почему бы Вам не оставить свой?
Ваше имя:
Комментарий:
Секретный код:Секретный код
Повторить:
Антиспам:

Партнеры




Powered by SLAED CMS © 2005-2007 SLAED. All rights reserved.