字符串這是文件中的示例行我處理: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