PHP正则表达式删除多个?
时间:2020-03-06 14:45:18 来源:igfitidea点击:
我在想出正确的正则表达式字符串以删除多个序列时遇到麻烦?人物。我要替换多个序列吗?带有一个?,但是哪些字符要逃脱...逃脱了我。
输入示例:
Is this thing on??? or what???
所需的输出:
Is this thing on? or what?
我在PHP中使用preg_replace()。
解决方案
preg_replace('{\?+}', '?', 'Is this thing on??? or what???');
也就是说,我们只需要转义问号," \?+"中的加号表示我们将每个实例替换为一个或者多个字符,尽管我怀疑" \?{2,}"可能更好,并且效率更高(用两个或者更多问号字符替换每个实例。
preg_replace('{\\?+}','?',$ text);
应该做。
我们需要使用反斜杠对问号本身进行转义,然后使用另一个反斜杠对反斜杠本身进行转义。
在这种情况下,C#的逐字字符串很不错。
这应该工作(我已经测试过):
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');