我试图获取部分以逗号分隔的设置中的字符串。我需要在字符串中每行的开头和结尾添加引号或其他标记。有问题的字符串有很多行,如下所示。
IE
2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres
将变成
"2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres"
我尝试了许多正则表达式尝试,但我不得不承认我对正则表达式的理解很差。
答案 0 :(得分:1)
我假设字符串是多行长的?
我很想创建一个包含每一行的新数组,如下所示:
<?php
$string = '2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres'; // obviously use a string with multiple lines, but i'm just taking your example
$array = preg_split('/\n+/', $string, -1, PREG_SPLIT_NO_EMPTY);
foreach($array as $k=>$v){
$array[$k]='"'.$v.'"';
}
print_r($array);
或者我说你总是可以使用类似的东西:
<?php
$newstring = '"'.str_replace("\n", "\"\n\"",$string).'"';
虽然,第二种方法可能需要一些改进来考虑“\ r”或“\ r \ n”。
答案 1 :(得分:1)
您可以滥用.
与换行符不匹配的事实。
$result = preg_replace('/(.+)/', '"$1"', $subject);
答案 2 :(得分:0)
如果你的字符串是:
2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres
2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres
2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres
2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres
2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres
2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres
您只需要在每行的开头和结尾使用双引号strtr:
$sLines = "2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres
2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres
2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres
2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres
2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres
2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres";
$arrTr = array();
$arrTr1 = array();
$arrTr[chr(13)] = '"'.chr(13).'"';
$arrTr1["\"\n"] = '"';
$sLines = strtr(strtr($sLines,$arrTr),$arrTr1);
$sLines = '"'.$sLines.'"';
echo '<pre>';
print_r($sLines);
echo '</pre>';
但是,如果您使用“\ n”字符粘贴线条,则可以执行此操作:
$sLines = "2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres\n2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres\n2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres\n2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres\n2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres\n2011.11.12 20:06,Teac Ous,Solid Pyroxeres,46521,Pyroxeres";
$arrTr = array();
$arrTr1 = array();
$arrTr["\n"] = '"'."\n".'"';
$sLines = strtr($sLines,$arrTr);
$sLines = '"'.$sLines.'"';
echo '<pre>';
print_r($sLines);
echo '</pre>';