我正在尝试使用分隔符捕获在引号字符 (") 上拆分 UTF-8 字符串,除非该引号后跟第二个引号 (""),以便(例如)
"A ""B"" C" & "D ""E"" F"
将分为三个元素
"A ""B"" C"
&
"D ""E"" F"
我一直在尝试使用:
$string = '"A ""B"" C" & "D ""E"" F"';
$temp = preg_split(
'/"[^"]/mui',
$string,
null,
PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE
);
但没有成功,因为它给了我
array(7) {
[0]=>
string(2) " ""
[1]=>
string(1) """
[2]=>
string(1) "C"
[3]=>
string(2) "& "
[4]=>
string(2) " ""
[5]=>
string(1) """
[6]=>
string(2) "F""
}
所以它会丢失紧跟在引号后面的任何字符,除非该字符也是引号
在这个例子中,有一个引号作为字符串中的第一个和最后一个字符,尽管情况可能并非总是如此,例如
{ "A ""B"" C" & "D ""E"" F" }
需要拆分成五个元素
{
"A ""B"" C"
&
"D ""E"" F"
}
有人可以帮我完成这项工作吗?