字符串这是文件中的示例行我处理:PHP的正则表达式匹配管道分隔文本
2011-08-08|M|Misc Info|6PM|Away vs. First Words, Second String, Third|Other Info
我想之间的“离开与”让一切和下一个“|”
字符串这是文件中的示例行我处理:PHP的正则表达式匹配管道分隔文本
2011-08-08|M|Misc Info|6PM|Away vs. First Words, Second String, Third|Other Info
我想之间的“离开与”让一切和下一个“|”
只需使用PHP的爆炸函数来创建一个数组。
$str = "2011-08-08|M|Misc Info|6PM|Away vs. First Words, Second String, Third|Other Info";
$arr = explode($str, '|');
$parts = $arr[4];
$newArr = explode($parts, ',');
如果他正在处理大量数据,则分解可能不会很好。此外,这会给他几个不必要的数组 - 他只需要从他的格式中提取一个字符串。 – RageD
$string = '2011-08-08|M|Misc Info|6PM|Away vs. First Words, Second String, Third|Other Info';
$parts = explode('|', $string);
echo $parts[4]; // This is what you are looking for.
我不明白你为什么会在这里使用正则表达式。
如果你正在使用PHP 5.3还有另一种解决方案:
$parts = str_getcsv($string, '|');
echo $parts[4]; // This should be the part you're looking for
str_getcsv
也明白封闭的字符串,使其更加强劲。
我曾尝试过一些做过strpos()的事情,直到它到达正确的管道,但是测试表明它比这个解决方案慢得多。 +1。 – Jonah
文件是否总是采用相似的格式?另外,如何以这种格式处理丢失的数据? – RageD
到目前为止你使用的是什么正则表达式?到目前为止你的代码是什么?你跑哪个问题?或者你只是要求代码? – hakre
看起来像管道分隔,而不是管道分隔。你是什么意思? '| a | b | c |'如果用管道分隔,则有三个字段,如果用管道分隔,则有五个字段。 – tchrist