题
我无法找到正确的正则表达式字符串来删除多个序列?字符。我想替换多个顺序?有一个?,但哪些角色逃脱......正在逃避我。
示例输入:
这件事是吗???或者什么???
期望的输出:
这件事开始了吗?或者什么?
我在PHP中使用 preg_replace()。
解决方案
preg_replace('{\?+}', '?', 'Is this thing on??? or what???');
也就是说,你只需要逃避问号,加号在“\?+”中。意味着我们用一个或多个字符替换每个实例,但我怀疑是“\?{2,}”可能会更好,更有效(用两个或更多个问号字符替换每个实例。
其他提示
这应该有效(我已经测试过了):
preg_replace('/\?+/', '?', $subject);
preg_replace('/\?{2,}/','?',$text)
这应该做到
preg_replace('/(\?+)/m', '?', 'what is going in here????');
问号需要转义,m代表多线模式。
这是一个很好的网站,可以在 http://regex.larsolavtorvik.com/
str_replace('??', '?', 'Replace ??? in this text');
您是否尝试过模式
[?]+
替换?
?
不隶属于 StackOverflow