Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: RegExp
Войти
Регистрация
Восстановить пароль
 
Enforcer25
0 / 0 / 1
Регистрация: 05.09.2017
Сообщений: 16
1

Регулярные выражения

05.09.2017, 15:06. Просмотров 224. Ответов 2
Метки нет (Все метки)

Добрый день.

Есть пара задач, нужна консультация.

1. Необходимо первую букву каждого нового предложения сделать жирным.

Мой вариант решения:

PHP
1
2
3
$txt = "какой-то текст";
echo preg_replace("/\.\s./", '.&nbsp;<b>\\1</b>', $txt);
Ищем первый символ после точки с пробелом. Заменяем на точку, пробел, символ в теге <b>.
Но почему-то не работает "<b>\\1</b>".
Хотя такая конструкция работает в другом коде у меня.
На выходе получаю <b></b>.

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


2. Нужно посчитать количество символов в абзаце.

Есть текст, без тегов html. Каждый новый абзац обозначается просто с новой строки.
Как можно подсчитать количество символов в каждом абзаце и после каждого конкретного абзаца вывести количество символов?

3. Выделить по тексту слова: ABC, COM, DON.NET.
Делаю так:

PHP
1
echo preg_replace("/(abc|com|dot\.com)/si","<span style='color: red'>\\1</span>",$txt);
Все ок, только DOT.COM не выделяется красным. DOT красный, а .COM - нет.
Почему? Как правильно можно сделать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2017, 15:06
Ответы с готовыми решениями:

ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ?
Здравствуйте! Решил реализовать ЧПУ на своем сайте. Первый этап это замена всех...

регулярные выражения
Определить является ли входная лента, лентой - abcdefghijklmnopqrstuv18340 Где...

Регулярные выражения
Добрый день. Помогите заменить строку к примеру: ...

Регулярные выражения
Есть строка +1,2+1,1+2,3 .... Берёться из базы данных. Нужно её обработать...

Регулярные выражения
Доброго времени суток! Дали задание из следующего куска кода &lt;td rowspan=&quot;2&quot; ...

2
mrNTF
272 / 200 / 142
Регистрация: 22.01.2016
Сообщений: 637
05.09.2017, 23:50 2
1
PHP
1
echo preg_replace("/(\.\s.|^.)/u", '.&nbsp;<b>$1</b>', $txt);
2
PHP
1
2
3
4
5
6
7
$txt = "какой-то текст test
какой-то текст
какой-то тексткакой-то текст";
$_ = array_map('trim', explode("\n", $txt));
foreach ($_ as $v) {
    echo "$v\n", mb_strlen($v), " символов\n";
}
3
Цитата Сообщение от Enforcer25 Посмотреть сообщение
DOT.COM не выделяется красным. DOT красный, а .COM - нет.
не может такого быть
http://sandbox.onlinephpfunctions.co...5873728a763d0d
0
Enforcer25
0 / 0 / 1
Регистрация: 05.09.2017
Сообщений: 16
06.09.2017, 16:04  [ТС] 3
mrNTF,
PHP
1
echo preg_replace("/(\.\s.|^.)/u", '.&nbsp;<b>$1</b>', $txt);
Это работает, спасибо.
Только почему-то оно точку из "/(\.\s.|^.)/u" добавляет в замену и получается жирная точка становится.

PHP
1
$_ = array_map('trim', explode("\n", $txt));
А тут, если можно, пару слов, что такое trim? Тут по идее функция должна стоять.

И еще, если можно, напишите пожалуйста как выделить жирным первый символ в новом абзаце текста.

Спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2017, 16:04

Регулярные выражения
Добрый день! Подскажите какой будет шаблон паттерн для функций preg_replace,...

Регулярные выражения
Здравствуйте! У меня нестандартный вопрос такой. Где можно почитать (поучить)...

Регулярные выражения
Дана строка, состоящая из слов, разделённых символами, которые перечислены во...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru