Gun*_*tar 4 php regex string split
我想在每个空间将文本消息拆分为数组。在我收到这条短信之前,它一直工作得很好。\n以下是处理文本字符串的几行代码:
\n\n $str = \'T bw4\xc2\xa0\xc2\xa005/09/19 07:51 am BW6N 499.803\';\n $cleanStr = iconv("UTF-8", "ISO-8859-1", $str);\n $strArr = preg_split(\'/[\\s\\t]/\', $cleanStr);\n var_dump($strArr);\nRun Code Online (Sandbox Code Playgroud)\n\nVar_dump 产生以下结果:
\n\narray:6 [\xe2\x96\xbc\n 0 => "T"\n 1 => b"bw4 05/09/19"\n 2 => "07:51"\n 3 => "am"\n 4 => "BW6N"\n 5 => "499.803"\n]\nRun Code Online (Sandbox Code Playgroud)\n\n数组“1 => b”bw4 05/09/19”中的 #1 项不正确,我无法弄清楚数组值前面的字母“b”是什么。\n此外,空格(es) 在“bw4”和“05/09/19”之间\n任何关于如何更好地实现字符串分割的建议都非常感谢。\n这是原始字符串: https://3v4l.org/2L35M,这是来自我的本地主机的结果图像:http://prntscr.com/jjbvny
\n要匹配您可以使用的任何 1 个或多个 Unicode 空白字符
\n\n\'~\\s+~u\'\nRun Code Online (Sandbox Code Playgroud)\n\n您的\'/[\\s\\t]/\'模式仅匹配单个空白字符 ( \\s) 或制表符 ( \\t) (这当然是多余的,因为\\s已经匹配制表符),但由于u缺少修饰符,因此\\s无法匹配您拥有的\\u00A0字符(硬空格)后bw4。
所以,使用
\n\n$str = \'T bw4\xc2\xa0\xc2\xa005/09/19 07:51 am BW6N 499.803\';\n$strArr = preg_split(\'/\\s+/u\', $str);\nprint_r($strArr);\nRun Code Online (Sandbox Code Playgroud)\n\n请参阅PHP演示
\n\nArray\n(\n [0] => T\n [1] => bw4\n [2] => 05/09/19\n [3] => 07:51\n [4] => am\n [5] => BW6N\n [6] => 499.803\n)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3486 次 |
| 最近记录: |