Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Составить регулярное выражение Delphi > TRegExpr

Ответить
Настройки темы
Delphi - Составить регулярное выражение Delphi > TRegExpr

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


День добрый!

Как правильно составить регулярное выражение чтобы получить из следующих строк кодировку UTF-8

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta charset="UTF-8" />
<meta charset="UTF-8">
<meta http-equiv="Content-Type" charset=UTF-8" />

используется Delphi > TRegExpr

спасибо!

Отправлено: 04:30, 18-03-2015

 

Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


Документация на странице http://regexpstudio.com/TRegExpr/Help/About.html
Для замены подстроки или символа на другой символ используется метод класса Substitute.
Кодовая таблица для кодировки UTF-8 : http://www.unicodetools.com/unicode/codepage-utf8.php
Вам нужно перекодировать UTF-8 в ASCII или ASCII в UTF-8 ?

Для встречающихся в данных строках символов ASCII и UTF-8 тождественны, т.е. перекодировка может не требоваться.

-------
Ehhh.. what's up, doc?..


Отправлено: 07:18, 18-03-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


нужно спарсить с произвольной html страницы установленную в её метатегах кодировку
один из вариантов:
Expression:= '<meta(.*)charset=(.*)"(\s*/?)>';
но он работает до тех пор пока в 1 строка = 1 метатег. т.е. если строки склеены то работает некорректно, например
<meta name="KEYWORDS" content="фото объектов с мягкой черепицей, страница 2, Москва, Shinglas" /><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta><meta name="DESCRIPTION" content="В данном разделе сайта компании представлены фото объектов с мягкой черепицей Shinglas, страница 2." /></meta>

Отправлено: 09:30, 18-03-2015 | #3


Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


Попробуйте регулярку такого вида
Код: Выделить весь код
(<meta?).*?charset=(.*?)\"
Вроде бы достаточно такой регулярки в том случае, если на всей странице один charset.
Код: Выделить весь код
/charset=(.*?)\"/
Работает или нет, проверял в программе на Perl
Код: Выделить весь код
$str="<meta name=\"KEYWORDS\" content=\"фото объектов с мягкой черепицей, страница 2, Москва, Shinglas\" \/><meta http-equiv= \"Content-Type\" content=\"text\/html; charset=utf-8\"><\/meta><meta name=\"DESCRIPTION\" content=\"В данном разделе сайта компании  представлены фото объектов с мягкой черепицей Shinglas, страница 2.\" \/><\/meta>";
print $str;
$str =~ /(<meta?).*?charset=(.*?)\"/;
$d = $2;
print "\n";
print $d;

-------
Ehhh.. what's up, doc?..


Отправлено: 11:06, 18-03-2015 | #4


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


спасибо!
а можно составить одну регулярку так чтобы бралось значение TITLE из следующих вариантов строк:
<TITLE>НАЗВАНИЕ</TITLE>
<meta name="title" content="НАЗВАНИЕ">

Отправлено: 12:26, 18-03-2015 | #5


Ветеран


Сообщения: 1404
Благодарности: 135

Профиль | Отправить PM | Цитировать


Возможно так

Код: Выделить весь код
<title>(.*?)<
с идентификатором, что символы верхнего регистра и нижнего регистра равны

Код: Выделить весь код
<meta.*?title.*?content=\"(.*?)\"

-------
Ehhh.. what's up, doc?..


Отправлено: 12:45, 18-03-2015 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Составить регулярное выражение Delphi > TRegExpr

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.NET - Регулярное выражение LilLoco Программирование и базы данных 19 04-05-2016 09:36
Разное - Помогите составить регулярное выражение по разбору функции morebeauty Программирование и базы данных 1 20-08-2014 08:37
Debian/Ubuntu - grep регулярное выражение Forpost Общий по Linux 3 25-05-2012 00:50
Регулярное выражение venuko Вебмастеру 11 02-08-2010 18:18
Регулярное выражение benya Вебмастеру 27 26-08-2005 14:34




 
Переход