Если вы хотите сопоставить только предложение, вы можете использовать первое совпадение [vc_column_text
, за которым следует любой символ, кроме [
или ]
, а затем сопоставить закрывающее ]
Затем сопоставить 0+ вхождения символа пробела и захвата 1 или более вхождений любого символа, кроме пробела в группе 1.
\[vc_column_text[^][]*\]\s*(.+?)\[/vc_column_text]
Пояснение
\[vc_column_text
Соответствие [vc_column_text
[^][]*\]
Совпадение [
, затем 0+ вхождений любого символа, кроме [
или ]
и совпадение ]
\s*
Совпадение 0+ пробелов символы (.+?)
Группа захвата 1, соответствует любому персонажу 1+ раз, не жадный \[/vc_column_text]
Совпадение [/vc_column_text]
Regex demo | Php демо
Пример кода
$string = '[vc_row][vc_column][/vc_column][/vc_row][vc_row][vc_column width="1/2"][vc_column_text css=".vc_custom_1576642149231{margin-bottom: 0px !important;}"]This is the string I want to fetch[/vc_column_text][/vc_column][/vc_row]';
preg_match_all("~\[vc_column_text[^][]*\]\s*(.+?)\[/vc_column_text]~", $string, $matches);
print_r($matches[1]);
Выход
Array
(
[0] => This is the string I want to fetch
)