PHP регулярное выражение + (плюс) метасимвол

0

Я хочу заменить все вхождения либо капитала E либо нижнего регистра e с помощью: *:

echo preg_replace( "/[eE]+/", "*", "eeEE" );

Я ожидал, что результатом будет: **** поскольку в subject preg_replace() есть четыре символа.

Текущий выход - *.

Почему это работает не так, как ожидалось; что мне не хватает? Ясно, что я ничего не понимаю.

Теги:

1 ответ

2
Лучший ответ

В этом конкретном случае просто str_ireplace("e","*","eeEE"); Сделаю.

Однако ваше недоразумение заключается в том, что ваше регулярное выражение говорит "замените один или несколько Es, как можно больше с помощью одного * ". Вам здесь не нужен символ +, поскольку вы заменяете один символ другим одиночным символом.

  • 0
    Благодарю. Каким был бы шаблон регулярных выражений, если бы я не использовал сложные функции, как указано выше, если они есть?
  • 0
    /e/i был бы простым регулярным выражением.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню