2013-11-13 4 views
1

Так что в основном у меня большое жало (несколько абзацев долго).Как удалить текст из строки, которая не окружена тегами HTML?

Мне нужно удалить весь текст из этой строки не, окруженный любыми HTML-тегами.

Например, эта строка:

<h1>This is the title</h1>This is a bit of text with no HTML around it<p>This is within a paragraph tag</p> 

должны быть преобразованы в:

<h1>This is the title</h1><p>This is within a paragraph tag</p> 

Я считаю, что это лучше всего сделать с регулярным выражением, хотя я не очень хорошо знаком с его synax.

Вся помощь очень ценится.


Это то, что я в конечном итоге с помощью:

<?php 
$string = '<h1>This is the title</h1>This is a bit of text with no HTML around it<p>This is within a paragraph tag</p>'; 
$pattern = '/(<\/[^>]+>)[^<]*(<[^>]+>)/'; 
$replacement = '$1$2'; 
echo preg_replace($pattern, $replacement, $string); 
?> 
+5

Похоже, не все согласны с этим HTTP: // StackOverflow .com/a/1732454/2947592 – wvdz

+0

@popovitsj - Так ты говоришь, что это невозможно? – Fizzix

ответ

3

вы могли бы использовать это регулярное выражение (<\/[^>]+>)[^<]*(<[^>]+>) и заменить $1$2 жить demo

+0

Работал отлично, спасибо за вашу помощь! Добавлено решение 'preg_match' на мой вопрос. – Fizzix

Смежные вопросы