2014-12-08 52 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);