Nasıl eklemek veya preg_replace kullanarak soru işaretleri firar yerine?

0 Cevap php

Ben de ve dize tek soru işareti zorlamak istiyorum. JavaScript mükemmel çalışıyor:

var re = /[?7!1]*$/;
document.write('lolwut'.replace(re, '?'));
document.write('lolwut?'.replace(re, '?'));
document.write('lolwut??'.replace(re, '?'));
document.write('lolwut???'.replace(re, '?'));
document.write('lolwut???!!!11'.replace(re, '?'));

All of returned values equals "lolwut?" PHP variant doesnt work that smooth:

$re = '/[?7!1]*$/';
echo preg_replace($re, '?', 'lolwut') . "\n";
echo preg_replace($re, '?', 'lolwut?') . "\n";
echo preg_replace($re, '?', 'lolwut??') . "\n";
echo preg_replace($re, '?', 'lolwut???') . "\n";
echo preg_replace($re, '?', 'lolwut???!!!11') . "\n";

çıktı:

lolwut?
lolwut??
lolwut??
lolwut??
lolwut??

Ben burada yanlış ne yapıyorum?


Güncelleme:

$ (Dollar) Assert end of string
An assertion is a test on the characters following or preceding the current matching point that does not actually consume any characters.

preg_replace örtük küresel bayrağı ile birlikte burada benim karışıklık, bir ipucu sağlamak için salathe sayesinde. (Siz gerçekten, onun cevabını kadar oy gerekmektedir)

0 Cevap