Как преобразовать несколько <br/> отмечает к синглу <br/> тег в php

У меня такая же проблема. Я последовал за советом Бруно и обнаружил, что добавление KeyListener только к «первой» кнопке в JFrame (то есть в левом верхнем углу) сделало трюк. Но я согласен с вами, что это своего рода тревожное решение. Поэтому я пошарил и обнаружил более аккуратный способ исправить ситуацию. Просто добавьте строку

myChildOfJFrame.requestFocusInWindow();

к вашему основному методу после создания вашего экземпляра вашего подкласса JFrame и установите его видимым.

15
задан levik 25 September 2008 в 16:43
поделиться

8 ответов

Можно сделать это с регулярным выражением:

preg_replace("/(<br\s*\/?>\s*)+/", "<br/>", $input);

Это, если Вы передаете в своем исходном HTML, это возвратит строку с единственным < br/> замена каждого выполнения их.

35
ответ дан 30 November 2019 в 23:54
поделиться

Мой - почти точно то же как levik (+1), просто составляя некоторое другое форматирование br:

preg_replace('/(<br[^>]*>\s*){2,}/', '<br/>', $sInput);
17
ответ дан 30 November 2019 в 23:54
поделиться

без preg_replace, но работ только в PHP 5.0.0 +

$a = '<br /><br /><br /><br /><br />';
while(($a = str_ireplace('<br /><br />', '<br />', $a, $count)) && $count > 0)
{}
// $a becomes '<br />'
2
ответ дан 30 November 2019 в 23:54
поделиться

Расширенная удобочитаемость, короче, производит корректный вывод независимо от атрибутов:

preg_replace('{(<br[^>]*>\s*)+}', '<br/>', $input);
6
ответ дан 30 November 2019 в 23:54
поделиться

Используйте регулярное выражение, чтобы соответствовать <br/> один или несколько раз, затем использовать preg_replace (или подобный) для замены <br/>, такие как ответ levik.

2
ответ дан 30 November 2019 в 23:54
поделиться

Вы, вероятно, хотите использовать Регулярное выражение. Я не протестировал следующее, но я полагаю, что это правильно.

$text = preg_replace( "/(<br\s?\/?>)+/i","<br />", $text );
1
ответ дан 30 November 2019 в 23:54
поделиться

Всем спасибо .. Используется версия Jakemcgraw (+1)

Просто добавлена ​​опция без учета регистра.

{(<br[^>]*>\s*)+}i

Отличный инструмент для проверки этих регулярных выражений:

http://www.spaweditor.com/scripts/regex/index.php

5
ответ дан 30 November 2019 в 23:54
поделиться

Быстрый подход без регулярных выражений:

while(strstr($input, "<br/><br/>"))
{
    $input = str_replace("<br/><br/>", "<br/>", $input);
}
1
ответ дан 30 November 2019 в 23:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: