Войти

Показать полную графическую версию : регулярная замена, вопрос


E-mail
12-03-2006, 03:03
есть масив,
каждый элемент массива - текст на английском языке, который может содержать в себе теги html

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

с автоматикой перевода проблем нет:) но вот как оставить нетронутыми теги, чтобы их случайно вместе с текстом не перевести?:)

т.е. например один из элементов массива:


my messenger is a popular instant message service. Find out more at the <a href="http://trytrf.com/" target="_blank"><strong>My Messenger homepage</strong></a>
and all popular mess


должно получится:


мой посылатель - популярное мгновенное обслуживание сообщения. Узнайте больше в <a href = "http://trytrf.com/" target = "_blank"> <strong> начальная страница Посыльного MSN </strong> </a> и другие популярные посылатели.



т.е. внутрености тегов (атрибуты и ссылки и т.д.) нельзя переводить.

создавать базу тегов и атрибутов и возможных url - безсмысленно, надо както с помощью регуляров искать и нужное заменять на перевод... массив огромный, кто может подсказать что и как делать?:)

vadimiron
12-03-2006, 13:21
Ну например можное каждый элемент разбивать опять на массив по аткому принципу: текст тег текст тег
то есть мы в один элемент пишем, пока не наткнулись на тег, для тега начинаем следущий элемент, когда тег закончился и начался текст, то опять начинаем новый элемент для текста
Таким образом у нас поочерёдно в массиве сидят тест и теги. Переводим каждый второй элемент массива (то есть только текст) и потом опять делаем из массива строку.

XCodeR
12-03-2006, 18:44
а можно сделать функцию, которая с помощью регулярных выражений будет изымать текст из пары тэгов и записывать её в отдельный массив, а потом обратная замена...

E-mail
12-03-2006, 20:18
вообще мне показалось что я этот пост вчера еще удалил)

спасибо за ответы, у меня под ночь всегда много интересных вопросов появляется...




© OSzone.net 2001-2012