2014-12-08 119 views
0

我有一些用戶在輸入問題標題,如:PHP:在問號mark_之前替換字符串末尾的空格(空格)?

"Why do dogs die ?" 

甚至

"Why do dogs die ?" 

我的目標是問號之前刪除空格,這樣的輸出將是正確的拼寫法:

"Why do dogs die?" 

首先,我以爲我可以只搜索_?,並用?代替它,但那個woul

"There is the sign ? - What is the name of it ?" 

這就是爲什麼我需要將它縮小到字符串的結尾:如果有這樣的問題,d是prolbematic。

任何解決方案,歡迎。

回答

1

在正則表達式的末尾添加$
preg_replace('/\s+\?$/', '/?/', $string)
Link to regex

1

您可以使用正則表達式,

[\t\s]+\? 

此搜索前一個選項卡或空間?

這樣你就可以

preg_replace($pattern, $replacement, $string) 

模式替換空間/製表將'/[\t\s]+\?/g'

更換將'?'

+1

最好使用'''而不是'''。沒有什麼大不了的,但它總是bett呃當你不需要時使用''''':P – Forien 2014-12-08 08:17:18

0

使用preg_replace

$var = "Why do dogs die ?"; 
preg_replace('/(\s+\?)/', '?',$var);