PHP,使用preg_replace删除双引号内的字符串?
PHP, Remove a string inside double quotation mark using preg_replace?
我有一个 PHP 字符串,格式如下:
$str = 'This is a "sample string"';
我想删除双引号字符串。像这样:
This is a
我尝试了什么:
$fileread = preg_replace('!/\*.*?\*/!s',' -', $fileread);
$fileread = preg_replace('![ \t]*//.*[ \t]*[\r\n]!', '', $fileread);
$separator = preg_replace('/"[^"]+"/','',$fileread);
$separator = explode(" ",$separator);
有没有更简单的方法来提取它?
<?php
$str = 'This is a "sample string".';
$str = preg_replace('#(").*?(")#', '', $str);
echo $str;
?>
您可以简单地匹配包含在双引号内的字符串并将其替换为空字符串:
$str = 'This is a "sample string".';
$str = preg_replace('/".*"/', '', $str);
echo $str;
使用这个:-
$fileread = preg_replace('("+[a-z A-Z 0-9 !@#$%^&*()]+")', "",
$fileread);
为确保正则表达式引擎的处理速度最快,请使用带有否定字符的贪婪量词 (*
) class [^"]
).
我什至会删除可选的前导 space 以使输出更清晰。如果引号字符串可能是第一个或最后一个单词,那么您需要使用两个分支——一个带有可选的前导 space 和一个带有可选的尾随 space.
代码:(Demo)
$str = 'This is a "sample string" more text';
var_export(
preg_replace('~ ?"[^"]*"~', '', $str)
);
输出:
'This is a more text'
我有一个 PHP 字符串,格式如下:
$str = 'This is a "sample string"';
我想删除双引号字符串。像这样:
This is a
我尝试了什么:
$fileread = preg_replace('!/\*.*?\*/!s',' -', $fileread);
$fileread = preg_replace('![ \t]*//.*[ \t]*[\r\n]!', '', $fileread);
$separator = preg_replace('/"[^"]+"/','',$fileread);
$separator = explode(" ",$separator);
有没有更简单的方法来提取它?
<?php
$str = 'This is a "sample string".';
$str = preg_replace('#(").*?(")#', '', $str);
echo $str;
?>
您可以简单地匹配包含在双引号内的字符串并将其替换为空字符串:
$str = 'This is a "sample string".';
$str = preg_replace('/".*"/', '', $str);
echo $str;
使用这个:-
$fileread = preg_replace('("+[a-z A-Z 0-9 !@#$%^&*()]+")', "", $fileread);
为确保正则表达式引擎的处理速度最快,请使用带有否定字符的贪婪量词 (*
) class [^"]
).
我什至会删除可选的前导 space 以使输出更清晰。如果引号字符串可能是第一个或最后一个单词,那么您需要使用两个分支——一个带有可选的前导 space 和一个带有可选的尾随 space.
代码:(Demo)
$str = 'This is a "sample string" more text';
var_export(
preg_replace('~ ?"[^"]*"~', '', $str)
);
输出:
'This is a more text'