Как. * (Точка-звезда) работает? - программирование
Подтвердить что ты не робот

Как. * (Точка-звезда) работает?

Я уже понимаю, что .* означает ноль или более любого символа, но Может ли кто-нибудь объяснить, как .* в следующей работе и с чем она будет соответствовать?

.*([a-m/]*).*

.*([a-m/]+).*

.*?([a-m/]*).*
4b9b3361

Ответ 1

точка означает, что все может идти здесь, а звезда означает как минимум 0 раз поэтому .* принимает любую последовательность символов, включая пустую строку.

Ответ 2

Функция. * в ваших примерах - убедиться, что содержащее выражение может быть окружено чем угодно (или ничего). Точка представляет собой произвольный символ, и звездочка говорит, что символ до может быть повторен произвольным числом раз (или вообще нет).

Ответ 3

Каждый случай отличается:

.*([a-m/]*).*

Первый .*, вероятно, будет соответствовать всей строке, потому что [a-m/] не требуется присутствовать, а первый * является жадным и на первом месте.

.*([a-m/]+).*

Первый .* будет соответствовать всей строке до последнего символа, который соответствует [a-m/], поскольку требуется только один, а первый * является жадным и на первом месте.

.*?([a-m/]*).*

Первый .*? будет соответствовать строке с символом FIRST, который соответствует [a-m/], потому что *? не жадный, тогда [a-m/]+ будет соответствовать всем возможным, потому что + является жадным, а затем последний .* будет соответствовать остальной части строки.

Ответ 4

. * означает "любой символ, любое количество повторений".