preg_replace()
- это функция, в которой вы нуждаетесь.
Предполагая, что вы хотите, чтобы определить и заменить шестигранные представления цветов, код что-то вдоль линий:
$answer = preg_replace('/<td style="background-color:#[0-9A-F]{6};">/i', '', $answer);
i
PCRE modifier говорит preg_replace
игнорировать случаи характера.
Он идентифицирует и заменяет только тогда, когда цветовой код содержит ровно 6 шестнадцатеричных цифр. Чтобы определить коды цветов, используя 3-digit RGB notation, вам необходимо изменить часть [0-9A-F]{6}
regexp
на [0-9A-F]{3}([0-9A-F]{3})?
. Или использовать более простое выражение, которое соответствует всем цветовым кодам от 3 до 6 цифр: [0-9A-F]{3,6}
Можно также положить \s*
после двоеточия (:
), чтобы сделать это также соответствовать, когда один или несколько пробельных символы присутствуют после background-color:
части.
Обновленный код:
$answer = preg_replace(
'/<td style="background-color:\s*#[0-9A-F]{3,6};">/i', '', $answer
);
Однако, если вы хотите, чтобы соответствовать только некоторые цвета, то вы можете поместить цветовые коды, разделенные |
вместо:
$answer = preg_replace(
'/<td style="background-color:\s*#(80F9CC|E1E3E4|D1D3D4|73F6AB|3CEB88);">/i',
'',
$answer
);
Краткое объяснение регулярного выраженные части:
<td style="background-color: # plain text, matches if exact
\s* # matches zero or more (*) space characters (\s)
# # plain text, matches exactly one '#'
( # start of a group, doesn't match anything
80F9CC # matches '80F9CC'
|E1E3E4 # or (|) 'E1E3E4'
|D1D3D4 # or 'D1D3D4'
|73F6AB # or ...
|3CEB88 # or ...
) # end of the group
;"> # plain text; matches exactly this text
Им просто интересно о вашей конечной цели здесь .. если заменить открытие ''