#php #preg-replace
#php #preg-замена
Вопрос:
У меня есть строка PHP следующего формата:
$str = 'This is a "sample string"';
Я хочу удалить строку, заключенную в двойные кавычки. Вот так:
This is a
Что я пробовал:
$fileread = preg_replace('!/*.*?*/!s',' -', $fileread);
$fileread = preg_replace('![ t]*//.*[ t]*[rn]!', '', $fileread);
$separator = preg_replace('/"[^"] "/','',$fileread);
$separator = explode(" ",$separator);
Есть ли более простой способ извлечь это?
Ответ №1:
Вы можете просто сопоставить строку, заключенную в двойные кавычки, и заменить ее пустой строкой:
$str = 'This is a "sample string".';
$str = preg_replace('/".*"/', '', $str);
echo $str;
Комментарии:
1. Это то, что я ищу. Спасибо, брат!
Ответ №2:
<?php
$str = 'This is a "sample string".';
$str = preg_replace('#(").*?(")#', '', $str);
echo $str;
?>
Ответ №3:
Используйте это:-
$fileread = preg_replace(‘(» [a-z A-Z 0-9 !@#$%^amp;*()] «)’, «», $ файл для чтения);
Ответ №4:
Для обеспечения быстрой обработки механизмом регулярных выражений используйте жадный квантификатор ( *
) с отрицаемым символьным классом [^"]
).
Я даже удалю необязательный начальный пробел, чтобы сделать вывод более чистым. Если строка (строки) кавычек может быть первым или последним словом, тогда вам нужно будет использовать две ветви — одну с необязательным начальным пробелом, а другую с необязательным конечным пробелом.
Код: (Демо)
$str = 'This is a "sample string" more text';
var_export(
preg_replace('~ ?"[^"]*"~', '', $str)
);
Вывод:
'This is a more text'