PHP preg_replace нежадная проблема

Я использовал следующий сайт для тестирования PHP regex, таким образом, я не должен постоянно загружать: http://www.spaweditor.com/scripts/regex/index.php

Я использую следующий regex:

/(.*?)\.{3}/

на следующей строке (заменяющий ничем):

Non-important data...important data...more important data

и preg_replace возвращается:

more important data

все же я ожидаю, что это возвратится:

important data...more important data

Я думал? нежадный модификатор. Что продолжается здесь?

6
задан AndersTornkvist 24 October 2011 в 21:45
поделиться

1 ответ

Ваш нежадный модификатор работает должным образом. Но preg_match заменяет все совпадений (не жадных) на заменяющий текст ( "" в вашем случае). Если вы хотите заменить только первый, вы можете передать 1 как необязательный 4-й аргумент (предел) функции preg_replace ( PHP-документы для preg_replace ). На веб-сайте, на который вы указали ссылку, это можно сделать, набрав 1 в поле ввода между словом «Флаги» и словом «предел».

8
ответ дан 16 December 2019 в 21:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: