Вернуться   SEO форум - оптимизация и продвижение сайтов > Web разработки > Программирование

Важная информация
Программирование - PHP, MySQL, JavaScript, CSS, HTML верстка и т.д.

Ответ
 
Опции темы Оценить тему Опции просмотра
Старый 30.09.2012, 14:01   #1
 
Аватар для gunya
 
Сообщений: 144
FR (активность): 2,529

Доп. информация
Стрелка Автор темы Текст между символами

Ребята, помогите в решении на PHP. Какое регулярное выражение должно быть для preg_match_all что бы выбрать текст между двумя [].
[text, text,text]
Огромное спасибо.
gunya вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 30.09.2012, 18:53   #2
 
Аватар для Ami
 
Сообщений: 16
FR (активность): 582

Доп. информация
По умолчанию

[php]
preg_match_all("/([\w]+)/", $var1, $var2);
[/php]
Hodge: сообщение полезно
Ami вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 30.09.2012, 22:20   #3
 
Аватар для gunya
 
Сообщений: 144
FR (активность): 2,529

Доп. информация
По умолчанию Автор темы

Цитата:
Сообщение от Ami Посмотреть сообщение
preg_match_all("/([\w]+)/",|$var1,|$var2);
Не то. Он вообще весь текст на слова делит.
gunya вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 01.10.2012, 12:30   #4
 
Аватар для Ami
 
Сообщений: 16
FR (активность): 582

Доп. информация
По умолчанию

Цитата:
Сообщение от gunya Посмотреть сообщение
[text, text,text]
Как именно текст будет записываться?
Например, вот так для [text | text | text] работает нормально:
[php]
preg_match_all("/([\w\s\.\!\?]+)/",$var1,$var2);
[/php]
Просто если в самом тексте будет встречаться запятая, то скрипт будет принимать её за разделитель.

И ещё вопрос. Нужен только текст, который внутри [] скобок находится, а за пределами не трогать?
gunya: сообщение полезно
Ami вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
"Спасибо" от:
gunya (01.10.2012)
Старый 01.10.2012, 15:56   #5
 
Аватар для gunya
 
Сообщений: 144
FR (активность): 2,529

Доп. информация
По умолчанию Автор темы

Делаю парсилку для гугл транслэйт через пост запрос. Возвращает данные, обрезаю, получаю следующее:
Цитата:
[[["Prime Minister of Ukraine Mykola Azarov congratulated librarians Ukrainian Day on the occasion of libraries , said on Sunday the government press service .\r\n","Премьер Украины Николай Азаров поздравил библиотекарей по случаю Всеукраинского дня библиотек, сообщает в воскресенье пресс-служба правительства.","","Prem?yer Ukrainy Nikolay Azarov pozdravil bibliotekarey po sluchayu Vseukrainskogo dnya bibliotek, soobshchayet v voskresen?ye press-sluzhba pravitel?stva."],["\u003cp\u003e\r\n","\u003cp\u003e","","\u003cp\u0 03e"],["Ukrainian National Library Day is celebrated on September 30 according to the Presidential Decree of 14 May 1998 . ","Всеукраинский день библиотек отмечается 30 сентября согласно указу президента Украины от 14 мая 1998.","","Vseukrainskiy den? bibliotek otmechayetsya 30 sentyabrya soglasno ukazu prezidenta Ukrainy ot 14 maya 1998."],["At present , according to official data, in Ukraine there are about 40 thousand libraries.\r\n","В настоящее время, по официальным данным, в Украине действуют около 40 тысяч библиотек.","","V nastoyashcheye vremya, po ofitsial?nym dannym, v Ukraine deystvuyut okolo 40 tysyach bibliotek."],["\u003cp\u003e\r\n","\u003cp\u003e","","\u003cp\u0 03e"],["I congratulate you and all the fans of the book with the day -Ukrainian libraries. ","Искреннее поздравляю Вас, всех почитателей книги с Всеукраинским днем библиотек.","","Iskrenneye pozdravlyayu Vas, vsekh pochitateley knigi s Vseukrainskim dnem bibliotek."],["Retaining the best professional tradition you daily provides free access to an inexhaustible source of knowledge ¬, - the statement says the head of government .\r\n","Сохраняя лучшие профессиональные традиции, Вы ежедневно обеспечиваете свободный доступ к неисчерпаемым источникам знаний¬, - говорится в обращении главы правительства.","","Sokhranyaya luchshiye professional?nyye traditsii, Vy yezhednevno obespechivayete svobodnyy dostup k neischerpayemym istochnikam znaniy¬, - govoritsya v obrashchenii glavy pravitel?stva."],["\u003cp\u003e\r\n","\u003cp\u003e","","\u003cp\u0 03e"],["Azarov also wished librarians happiness, prosperity and success for the benefit of Ukraine.","Азаров также пожелал библиотечным работникам счастья, благополучия и творческих успехов на благо Украины.","","Azarov takzhe pozhelal bibliotechnym rabotnikam schast?ya, blagopoluchiya i tvorcheskikh uspekhov na blago Ukrainy."]
Нужно это разобрать и получить только перевод. Идея - выбрать всё что между [], а потом уже дальше парсить.
gunya вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 01.10.2012, 17:24   #6
 
Аватар для Ami
 
Сообщений: 16
FR (активность): 582

Доп. информация
По умолчанию

Ну как вариант можно воспользоваться таким регулярным выражением:
[php]
$perevod = preg_replace("/[^а-яА-Я\s\.\,\?\!]/","",$parse_google);
[/php]
Тогда останется только перевод и пару лишних знаков вида ",,,", которые можно удалить (хотя если это один запрос, то все будет нормально отображаться). Я правильно понял? =)
gunya: сообщение полезно
Ami вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
"Спасибо" от:
gunya (01.10.2012)
Старый 01.10.2012, 17:43   #7
 
Аватар для gunya
 
Сообщений: 144
FR (активность): 2,529

Доп. информация
По умолчанию Автор темы

Цитата:
Сообщение от Ami Посмотреть сообщение
$perevod|=|preg_replace("/[^а-яА-Я\s\.\,\?\!]/","",$parse_google);
Переводим с рус на англ.
Сделал так:
Цитата:
Сообщение от Ami Посмотреть сообщение
$perevod|=|preg_replace("/[^a-zA-Z\s\.\,\?\!]/","",$parse_google);
Получил:
Цитата:
[[[Prime Minister of Ukraine Mykola Azarov congratulated librarians Ukrainian Day on the occasion of libraries , said on Sunday the government press service .\r\n, , .,,Premyer Ukrainy Nikolay Azarov pozdravil bibliotekarey po sluchayu Vseukrainskogo dnya bibliotek, soobshchayet v voskresenye presssluzhba pravitelstva.],[\ucp\ue\r\n,\ucp\ue,,\ucp\ue],[Ukrainian National Library Day is celebrated on September according to the Presidential Decree of May . , .,,Vseukrainskiy den bibliotek otmechayetsya sentyabrya soglasno ukazu prezidenta Ukrainy ot maya .],[At present , according to official data, in Ukraine there are about thousand libraries.\r\n, , , .,,V nastoyashcheye vremya, po ofitsialnym dannym, v Ukraine deystvuyut okolo tysyach bibliotek.],[\ucp\ue\r\n,\ucp\ue,,\ucp\ue],[I congratulate you and all the fans of the book with the day Ukrainian libraries. , , .,,Iskrenneye pozdravlyayu Vas, vsekh pochitateley knigi s Vseukrainskim dnem bibliotek.],[Retaining the best professional tradition you daily provides free access to an inexhaustible source of knowledge , the statement says the head of government .\r\n, , , .,,Sokhranyaya luchshiye professionalnyye traditsii, Vy yezhednevno obespechivayete svobodnyy dostup k neischerpayemym istochnikam znaniy, govoritsya v obrashchenii glavy pravitelstva.],[\ucp\ue\r\n,\ucp\ue,,\ucp\ue],[Azarov also wished librarians happiness, prosperity and success for the benefit of Ukraine., , .,,Azarov takzhe pozhelal bibliotechnym rabotnikam schastya, blagopoluchiya i tvorcheskikh uspekhov na blago Ukrainy.
Хотелось бы только чистый англ текст.
Данный идут ["перевод (1 предложение)","транслитерац ия", "какая-то байда"] и так снова. Поэтому первоначально и хотелось выбирать данные между [], а потом по кавычкам я запятой разбивать.
gunya вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 01.10.2012, 19:54   #8
 
Аватар для Ami
 
Сообщений: 16
FR (активность): 582

Доп. информация
По умолчанию

Можно тогда все решить вот так:
[php]
$perevod = explode("],", $parse_google);
foreach ($perevod as $item) {
$item = preg_replace("/[^a-zA-Z0-9\s\.\,\?\!]/","",$item);
$var = strpos($item,".");
if($var != false) {
$var_2 = substr($item,0,$var-1).". ";
}
else {
unset($item);
}
echo $var_2;
}
[/php]
gunya: сообщение полезно
Ami вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
"Спасибо" от:
gunya (02.10.2012)
Старый 02.10.2012, 13:57   #9
 
Аватар для gunya
 
Сообщений: 144
FR (активность): 2,529

Доп. информация
По умолчанию Автор темы

Впринципе работает, только некоторые предложения 2 раза повторяются и в последнем обрезается последняя буква. Буду дальше ковырять.
За помощь спасибо.
gunya вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Ответ

Быстрый ответ
Ваше имя пользователя: Регистрация. Для входа нажмите здесь
Случайный вопрос

Сообщение:
Опции
Внимание!
Этой теме более 2832 дней. Вы можете оставить сообщение здесь. Но, обращаем внимание. Возможно, рациональней создать новую тему (найти свежее обсуждение)?


Опции темы
Опции просмотра Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать новые темы
Вы можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор между .net.ua и .kiev.ua. Или можно оба? WallTearer Домены 5 21.01.2011 01:44
Разница между внешней ссылкой с www и без SEWalker Продвижение ссылками 11 04.05.2010 10:48
Как вклинить код между сообщениями на форуме? Serena phpBB 0 29.03.2010 17:22
Перелинковка между сайтами Юрий Индексация сайта 9 15.03.2009 19:27
Выбираю между эко хостинг и мажордомо... Capic Какой хостинг выбрать? 0 07.02.2009 19:38

Текущее время: 13:31. Часовой пояс GMT +3.