Как правильно написать данное регулярное выражение?

12
REDGROUP
На сайте с 26.05.2021
Offline
14
642

Всем привет! Пытаюсь решить одну задачку по регулярным выражениям, частично получилось, а частично нет и поэтому решил создать тему на форуме. Буду благодарен любому совету и подсказке, спасибо за внимание.

Есть вот такой контент:  [COLOR=rgb(0,0,0)]Здесь контент[/COLOR], у меня получилось сделать регулярное выражение, которое удаляет этот бб-код, а содержимое при замене на \1 оставляем прежним как мне и нужно  \[COLOR=[^]]*?\](.*?)\[\/COLOR\], потом я понял что оно находит не всё так как перед закрывающим тегом у большинства контента имеется много лишних пробелов, пробелы тоже получилось учитывать, но как оказалось у меня имеется вот такой контент:

[CENTER][B][SIZE=7]lorem psum text.[/SIZE][/B]
[SIZE=7]
[B]lorem psum text lorem psum text
lorem psum text,
lorem psum text lorem psum text lorem psum text.
[/B]
[B]lorem psum text lorem psum text lorem psum text

lorem psum text lorem psum text[/B]

[B]lorem psum text lorem psum text:[/B]

[COLOR=rgb(65, 168, 95)][B]- lorem psum text lorem psum text lorem psum text
[/B][/SIZE]
[B][COLOR=rgb(65, 168, 95)][SIZE=7]- lorem psum text lorem psum text lorem psum text
[/SIZE][/B]
[SIZE=7][B]- lorem psum text lorem psum text lorem psum text lorem psum text[/B]
[COLOR=rgb(147, 101, 184)]
[ATTACH type="full"]1653[/ATTACH]
[B]lorem psum text lorem psum text[/B]
[COLOR=rgb(147, 101, 184)]
[B]lorem psum text lorem psum text lorem psum text lorem psum text lorem psum text lorem psum text.

lorem psum text lorem psum text lorem psum text lorem psum text.[/B]

[COLOR=rgb(235, 107, 86)][B]lorem psum text lorem psum text lorem psum textlorem psum text:

[URL unfurl="true"]https://domain.com[/URL]

lorem psum text lorem psum text lorem psum text lorem psum text lorem psum text lorem psum text[/B][COLOR=rgb(147, 101, 184)][B]

lorem psum text lorem psum text lorem psum text lorem psum text.[/B]

[COLOR=rgb(251, 160, 38)][B]lorem psum text lorem psum text lorem psum text lorem psum text
lorem psum text. [/B]
[/SIZE][COLOR=rgb(251, 160, 38)][COLOR=rgb(251, 160, 38)][COLOR=rgb(251, 160, 38)][COLOR=rgb(251, 160, 38)][/CENTER][COLOR=rgb(251, 160, 38)][COLOR=rgb(251, 160, 38)][COLOR=rgb(251, 160, 38)][COLOR=rgb(251, 160, 38)]

Каким образом мне здесь удалить абсолютно все COLOR, а сообщения и т.д оставить нетронутыми? 


LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#1

(.*?) - это вообще всё

\[COLOR=rgb.*?\](.*?)\[/COLOR\]
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
REDGROUP
На сайте с 26.05.2021
Offline
14
#2
LEOnidUKG #:

(.*?) - это вообще всё

Не работает, да и если внутри будет не rgb, а hex формат не важно в таком ключе?

fliger
На сайте с 17.09.2015
Offline
114
#3

[COLOR=rgb(0,0,0)]Здесь контент[/COLOR] - заменить на Здесь контент

#\[COLOR=(?>[^\]]+)\]([^\[]+)\[\/COLOR\]#gi - заменить на \1
REDGROUP
На сайте с 26.05.2021
Offline
14
#4
fliger #:

[COLOR=rgb(0,0,0)]Здесь контент[/COLOR]

#\[COLOR=(?>[^\]]+)\]([^\[]+)\[\/COLOR\]#


Строчные и так получилось сделать.
Речь об этом - https://regex101.com/r/3uxiE8/1

regex101: build, test, and debug regex
regex101: build, test, and debug regex
  • Firas Dib
  • regex101.com
Delete Regex Advertisements and your privacy The advertisements are provided by Carbon, but implemented by regex101. No cookies will be used for tracking and no third party scripts will be loaded. The information is fetched using a JSONP request, which contains the ad text...
fliger
На сайте с 17.09.2015
Offline
114
#5
REDGROUP :

Каким образом мне здесь удалить абсолютно все COLOR, а сообщения и т.д оставить нетронутыми? 


#\[COLOR=(?>[^\]]+)\]([^\[]+)\[\/COLOR\]#gi

P.S. Бабка-гадалка в отпуске.

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#6
REDGROUP #:

Не работает, да и если внутри будет не rgb, а hex формат не важно в таком ключе?

Ну если вообще всё снести, тогда проще так

\[COLOR.*?\](.*?)\[/COLOR\]
REDGROUP
На сайте с 26.05.2021
Offline
14
#7
LEOnidUKG #:

Ну если вообще всё снести, тогда проще так

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

L
На сайте с 10.02.2015
Offline
246
#8
REDGROUP #:

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

Потому что у вас там нет закрывающего 

[/COLOR]
REDGROUP
На сайте с 26.05.2021
Offline
14
#9
livetv #:

Потому что у вас там нет закрывающего [/COLOR]

Есть. https://regex101.com/r/tQSEWG/1

regex101: build, test, and debug regex
regex101: build, test, and debug regex
  • Firas Dib
  • regex101.com
Delete Regex Advertisements and your privacy The advertisements are provided by Carbon, but implemented by regex101. No cookies will be used for tracking and no third party scripts will be loaded. The information is fetched using a JSONP request, which contains the ad text...
L
На сайте с 10.02.2015
Offline
246
#10

Оно по ходу ест первое совпадение. Вставьте content, будет тоже одно. Добавьте флаг g

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий