Size: a a a

Regular Expressions

2020 September 29

BA

Bauka Alimgazy in Regular Expressions
Когда их убираю все ломается
источник

BA

Bauka Alimgazy in Regular Expressions
function bbClear($text) {
// BBcode array
$find = array(
 '~\[plea\](.*?)\[/plea\]~s',
 '~\[m1\]([^ ]+?)~s',
 '~\[i\](.*?)\[/i\]~s',
 '~\[v\](.*?)\[/v\]~s',
 '~\[sup\](.*?)\[/sup\]~s',
 '~\\\Input{(.*?)}~s',
 '~\[u\](.*?)\[/u\]~s',
 '~\[quote\](.*?)\[/quote\]~s',
 '~\[size=(.*?)\](.*?)\[/size\]~s',
 '~\[color=(.*?)\](.*?)\[/color\]~s',
 '~\[url\]((?:ftp|https?)://.*?)\[/url\]~s',
 '~\[img\](https?://.*?\.(?:jpg|jpeg|gif|png|bmp))\[/img\]~s',
   '/\[[^\]]+\]/'
);

// HTML tags to replace BBcode
$replace = array(
 '<b class="plea">$1</b>',
 '<span class="text_marker" id="m1">$1</span>',
 '<i>$1</i>',
 '<i>$1</i>',
 '<sup>$1</sup>',
 '$1',
 '<span style="text-decoration:underline;">$1</span>',
 '<pre>$1</'.'pre>',
 '<span style="font-size:$1px;">$2</span>',
 '<span style="color:$1;">$2</span>',
 '<a href="$1">$1</a>',
 '<img src="$1" alt="" />',
   ''
); // Replacing the BBcodes with corresponding HTML tags
return preg_replace($find,$replace,$text);
}
Я просто весь текст который есть на сайте пропускаю через эту функцию
источник

OM

Oleg Makarikhin in Regular Expressions
это наверное сепаратор вместо /
источник

OM

Oleg Makarikhin in Regular Expressions
как тот классический пример в седе.
echo cat | sed statement
источник

DE

Denis Efremov in Regular Expressions
источник

л

лохматый in Regular Expressions
спасибо огромное
я изучаю регулярку по мере необходимости и я не прогер, но то что я прочел до текущего момента, ни разу не приближает меня к пониманию этого, что меняет добавление "?:".
хорошо что есть  Quick Reference и поиск в нем
источник

BA

Bauka Alimgazy in Regular Expressions
Спасибо, но я все тэги уже как то горе пополам сделал, кроме тэга [m1] и [m2] который не парный, и только открывающися тэг
источник

DE

Denis Efremov in Regular Expressions
лохматый
спасибо огромное
я изучаю регулярку по мере необходимости и я не прогер, но то что я прочел до текущего момента, ни разу не приближает меня к пониманию этого, что меняет добавление "?:".
хорошо что есть  Quick Reference и поиск в нем
() - нумерованная захватываемая группа
(?'name') - именованная захватываемая группа
(?:) - незахватываемая группа
источник

DE

Denis Efremov in Regular Expressions
Bauka Alimgazy
Спасибо, но я все тэги уже как то горе пополам сделал, кроме тэга [m1] и [m2] который не парный, и только открывающися тэг
Как же тогда определяется их конец?
источник

BA

Bauka Alimgazy in Regular Expressions
Denis Efremov
Как же тогда определяется их конец?
До первого пробела или спец символа, у меня такая регулярка тоже есть, но она на сайте regex101 прекрасно работает, а у меня в php скрипте нет
источник

DE

Denis Efremov in Regular Expressions
А ок
источник

DE

Denis Efremov in Regular Expressions
источник

BA

Bauka Alimgazy in Regular Expressions
https://regex101.com/r/J9CfI5/2 вот то что на regex101 работает, а он у меня на сайте не работает, и я его преоброзовал в ~\[m1\]([^ ]+?)~s но теперь на сайте работает, но на с казахскими буквами ломается
источник

DE

Denis Efremov in Regular Expressions
источник

BA

Bauka Alimgazy in Regular Expressions
Bauka Alimgazy
https://regex101.com/r/J9CfI5/2 вот то что на regex101 работает, а он у меня на сайте не работает, и я его преоброзовал в ~\[m1\]([^ ]+?)~s но теперь на сайте работает, но на с казахскими буквами ломается
источник

BA

Bauka Alimgazy in Regular Expressions
Я уже поискал в гугле, это какие то уникальные bb-коды, одиночные, но не обычные одиночные которые например обозначают таб.
источник

OM

Oleg Makarikhin in Regular Expressions
судя по такому коду,  ~ в том примере как # здесь, сепаратор
источник

DE

Denis Efremov in Regular Expressions
Есть функция в языке PHP, делающая этот разбор
источник

OM

Oleg Makarikhin in Regular Expressions
Bauka Alimgazy
function bbClear($text) {
// BBcode array
$find = array(
 '~\[plea\](.*?)\[/plea\]~s',
 '~\[m1\]([^ ]+?)~s',
 '~\[i\](.*?)\[/i\]~s',
 '~\[v\](.*?)\[/v\]~s',
 '~\[sup\](.*?)\[/sup\]~s',
 '~\\\Input{(.*?)}~s',
 '~\[u\](.*?)\[/u\]~s',
 '~\[quote\](.*?)\[/quote\]~s',
 '~\[size=(.*?)\](.*?)\[/size\]~s',
 '~\[color=(.*?)\](.*?)\[/color\]~s',
 '~\[url\]((?:ftp|https?)://.*?)\[/url\]~s',
 '~\[img\](https?://.*?\.(?:jpg|jpeg|gif|png|bmp))\[/img\]~s',
   '/\[[^\]]+\]/'
);

// HTML tags to replace BBcode
$replace = array(
 '<b class="plea">$1</b>',
 '<span class="text_marker" id="m1">$1</span>',
 '<i>$1</i>',
 '<i>$1</i>',
 '<sup>$1</sup>',
 '$1',
 '<span style="text-decoration:underline;">$1</span>',
 '<pre>$1</'.'pre>',
 '<span style="font-size:$1px;">$2</span>',
 '<span style="color:$1;">$2</span>',
 '<a href="$1">$1</a>',
 '<img src="$1" alt="" />',
   ''
); // Replacing the BBcodes with corresponding HTML tags
return preg_replace($find,$replace,$text);
}
Я просто весь текст который есть на сайте пропускаю через эту функцию
попробуй это
'~\[m1\](\S+?)\s~m'
источник

DE

Denis Efremov in Regular Expressions
Oleg Makarikhin
судя по такому коду,  ~ в том примере как # здесь, сепаратор
Делимитер
источник