我想刪除字符串中的第7和第8個字符。如何從PHP中刪除字符串中的第7個和第8個字符?
$string = "Tucson AZ 85718";
我試圖刪除州名縮寫。我有一堆用於不同郵政編碼的字符串,所以我不能用「'替換」AZ「。
我想刪除字符串中的第7和第8個字符。如何從PHP中刪除字符串中的第7個和第8個字符?
$string = "Tucson AZ 85718";
我試圖刪除州名縮寫。我有一堆用於不同郵政編碼的字符串,所以我不能用「'替換」AZ「。
$string = substr($string, 0, -8) . substr($string, -5);
演示:
php> $string = "Tucson AZ 85718";
php> echo substr($string, 0, -8) . substr($string, -5);
Tucson 85718
regex還可將做的工作。後此人會刪除任何2大寫字符的字符串和空間:
$string = preg_replace('/\b[A-Z]{2}\b /', '', $string);
謝謝你,正則表達式完美運作。 – Carson 2012-04-14 22:08:55
不是一個PHP的正則表達式的專家,但似乎
$string=preg_replace(" {w{1}} ", " ", $string);
會爲你做的工作。 wq
聲明:我不是美國人,不太瞭解美國郵政地址!
,我肯定會用preg_replace
或preg_match_all
做到這一點:
$string = "Tucson AZ 85718";
// Don't be mislead by the second [A-Z], this means all uppercase characters
$pattern = '/^(.+)([A-Z]{2})(\d+)$/';
preg_match_all($pattern, $string, $matches);
var_dump($matches);
這會給你一個數組,看起來像這樣:
array(4) {
[0]=>
array(1) {
[0]=>
string(15) "Tucson AZ 85718"
}
[1]=>
array(1) {
[0]=>
string(7) "Tucson "
}
[2]=>
array(1) {
[0]=>
string(3) "AZ "
}
[3]=>
array(1) {
[0]=>
string(5) "85718"
}
}
...其中第二,第三和第四索引將分別爲城市,州代碼和郵政編碼。
或者,你可以只剝除與preg_replace
前綴:
$string = "Tucson AZ 85718";
$pattern = '/^(.+)([A-Z]{2})(\d+)$/';
$normalised = preg_replace($pattern, '$1$3', $string);
...它會給你「圖森85718」,其中的第二個參數preg_replace
的$1 and $3
涉及第一和第三塊在模式的括號中(分別爲(.*)
和(\d{5})
)。
假設:
對於此字符串,可以使用$字符串=的preg_replace(「%(+)\。? (。+?)\ s(。+?)%','$ 1 $ 3',$ string)。更精確的模式需要更多的例子。 – 2012-04-14 20:38:26