When testing an answer for another user's question I found something I don't understand. The problem was to replace all literal
characters from a string with a single space.
Now, the first pattern I tried was:
/(?:\[trn])+/
which surprisingly didn't work. I tried the same pattern in Perl and it worked fine. After some trial and error I found that PHP wants 3 or 4 backslashes for that pattern to match, as in:
/(?:\\[trn])+/
or
/(?:\[trn])+/
these patterns - to my surprise - both work. Why are these extra backslashes necessary?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…