PHP, удалить строку внутри двойных кавычек с помощью preg_replace?

#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'