Проблема с сопоставлением данных вне HTML-тегов - PullRequest
2 голосов
/ 11 сентября 2009

Я пытаюсь найти способ сопоставления контента, который не существует внутри любых тегов xml или html. Я читал, что использование регулярных выражений в корне плохо для анализа xml / html, и я открыт для любого решения, которое решит мою проблему, но если регулярное выражение работает тоже, тем лучше.

Вот пример того, что я ищу:

the lazy fox jumped <span>over</span> the brown fence.

Что я хочу вернуть, это

the lazy fox jumped  the brown fence

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 11 сентября 2009

Запустите эту строку:

s/\(.*\)<.*>.*<.*>\(.*\)/\1\2/

Возможно, вам придется изменить некоторые детали в зависимости от реализации (например, экранирование скобок может не потребоваться), но это даст именно то, что вы хотите (с двойным пробелом и всем посередине).

1 голос
/ 11 сентября 2009

Вероятно, это наивный метод, но мой первый инстинкт - запустить регулярное выражение, выяснить, какой текст соответствует вашей родительской строке, и удалить его из этой строки, возвращая остаток. В псевдокоде

String input = "whatever";
matches = Regex.Matches(input,"<.*>.*?</.*>");
foreach (match m in Matches)
{
input = input.Remove(m.Value);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...