Я хочу заменить все вхождения либо капитала E
либо нижнего регистра e
с помощью: *:
echo preg_replace( "/[eE]+/", "*", "eeEE" );
Я ожидал, что результатом будет: ****
поскольку в subject
preg_replace()
есть четыре символа.
Текущий выход - *
.
Почему это работает не так, как ожидалось; что мне не хватает? Ясно, что я ничего не понимаю.
В этом конкретном случае просто str_ireplace("e","*","eeEE");
Сделаю.
Однако ваше недоразумение заключается в том, что ваше регулярное выражение говорит "замените один или несколько Es, как можно больше с помощью одного *
". Вам здесь не нужен символ +
, поскольку вы заменяете один символ другим одиночным символом.
/e/i
был бы простым регулярным выражением.