php - 用于解析 .strings 文件的正则表达式

标签 php regex string

我需要一个可以解析 .strings 文件的 PHP 正则表达式。特别是,它需要能够处理注释、空行、转义字符和尖括号。

.strings 文件示例:

/* string one */
"StringOne"="\"1\"";

"StringTwo"="<2>";

/* Bob Dillon */
"Bob"="Dillon";

根据请求,所需的输出如下:

Array( [StringOne] => "\"1\""[StringTwo] => "<2>"[Bob] => "Dillon")

非常感谢所有帮助!

最佳答案

这个?

    $r = '
    /* string one */
    "StringOne"="first \"string\"";

    "StringTwo"="2";

    /* Bob Dillon */
    "Bob"="Dillon";
    ';

    preg_match_all('~^\s*"((?:\\\\.|[^"])*)"[^"]+"((?:\\\\.|[^"])*)"~m', 
         $r, $matches, PREG_SET_ORDER);
    $parsed = array();
    foreach($matches as $m)
       $parsed[$m[1]] = $m[2];

    print_r($parsed);

打印

Array ( 
[StringOne] => first "string"
[StringTwo] => 2 
[Bob] => Dillon 
) 

关于php - 用于解析 .strings 文件的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1686143/

相关文章:

ios - 如何在考虑特殊字符的情况下选择字段中的文本?

php - 键中的字符串变成整数?

PHP 多维数组元素删除未设置

php - 'page source' 的样子是否会影响性能

javascript - 帮助解释 javascript 正则表达式

javascript - 从 jquery html() 设置/获取值的字符串比较失败?

php - 按自定义顺序订购多个字段,最后为空字段

java - 用注释转义行的正则表达式

python - 为什么 match 返回 None 而 findall 不返回?

php - Preg_replace 与数组替换