我有以下操作,它在遇到字母時拆分字串:
$splitOriginal = preg_split("/[a-zA-Z]/", implode('', array_slice($array, $key)), 2);
我想以這樣的方式擴展它,只要遇到的變數不是數字、括號、加號、連字符、換行符或制表符,它就會拆分字串。
我寫了一個可以匹配上面的正則運算式:
preg_match('/^(?=.*[0-9])[- ()0-9\r\n\t] $/', $value)
但是我需要否定它,以便在被比較的值不是它時進行匹配。非常感謝我能得到的任何及時幫助。
謝謝你。
uj5u.com熱心網友回復:
該[a-zA-Z]模式匹配任何 ASCII 字母。任何字符“非數字、括號、加號、連字符、換行符或制表符”也可以是字母,因此您應該關注后一個要求,您之前的模式不再相關。
你應該繼續使用preg_split:
$splitOriginal = preg_split('/[^\d() \n\t-]/', implode('', array_slice($array, $key)), 2);
該[^\d() \n\t-]模式與您制定的完全匹配。注意連字符,當它位于字符類的末尾(或開頭)時,它可以不轉義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/365247.html
