Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php';s preg_split_Php_Regex_String_Split_Preg Split - Fatal编程技术网

使用php';s preg_split

使用php';s preg_split,php,regex,string,split,preg-split,Php,Regex,String,Split,Preg Split,我有这个字符串(它是一个apple.strings文件): 等等 我需要在每个未注释行末尾的分号后拆分此字符串 如果我使用分解(;\n,$string)可能不准确,因为该行可能以a结尾;(空白)(新行) 更新: 输出应该是一个数组。每个元素都应该包含注释行(如果存在)和带引号的字符串行。您最好逐行读取文件,使用测试注释字符,并使用解析文件行,而不是使用regexp如果您只关心可选的空白,您可能会接受 $array = preg_split("/;\s*\n/", $string); preg

我有这个字符串(它是一个apple.strings文件):

等等

我需要在每个未注释行末尾的分号后拆分此字符串

如果我使用
分解(;\n,$string)可能不准确,因为该行可能以a结尾;(空白)(新行)

更新:
输出应该是一个数组。每个元素都应该包含注释行(如果存在)和带引号的字符串行。

您最好逐行读取文件,使用测试注释字符,并使用解析文件行,而不是使用regexp

如果您只关心可选的空白,您可能会接受

$array = preg_split("/;\s*\n/", $string); 

preg\u split
采用正则表达式,而
explode
采用字符串作为分隔符。

来自您的示例。。您的预期输出是什么您可以使用
\s*\n
允许冒号和行尾之间有空格。-或者使用
preg\u match\u all
“([^“]+)”\s*=\s*”([^“]+)”\*;直接匹配所有键/值对。如果值可能不包含转义版本的
请使用类似
^”(.*?)\s*=\s*”(.*?)\s*\n$
的内容。str\u getcsv()不会弄乱包含分号的带引号字符串吗?我认为会。使用str\u getcsv()的关键在于它正确处理带引号的字符串
$array = preg_split("/;\s*\n/", $string);