【发布时间】:2021-05-14 21:06:44
【问题描述】:
我在 preg_split 中使用正则表达式将字符串拆分为单独的部分。
$string = 'text required name="first_name" label="First Name" column="1/2"';
$ps = preg_split("/\s(?![\w\s]+\")/u", $string);
echo '<pre>',print_r($ps,1),'</pre>';
上面的代码给出了以下结果并且工作正常:
Array
(
[0] => text
[1] => required
[2] => name="first_name"
[3] => label="First Name"
[4] => column="1/2"
)
但如果我在双引号内添加任何特殊字符,则字符串将分解为单独的数组项:
$string = 'text required name="first_name" label="First Name! $ , ." column="1/2"';
$ps = preg_split("/\s(?![\w\s]+\")/u", $string);
echo '<pre>',print_r($ps,1),'</pre>';
导致:
Array
(
[0] => text
[1] => required
[2] => name="first_name"
[3] => label="First
[4] => Name!
[5] => $
[6] => ,
[7] => ."
[8] => column="1/2"
)
我怎样才能保留“名字!$ , .”在同一个数组项中?
例如像这样:
Array
(
[0] => text
[1] => required
[2] => name="first_name"
[3] => label="First Name! $ , ."
[4] => column="1/2"
)
【问题讨论】:
-
你能在引号内转义
"字符吗?
标签: php regex preg-split