Разница между * и. * В регулярных выражениях в Java - PullRequest
1 голос
/ 14 февраля 2012

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

Ответы [ 5 ]

13 голосов
/ 14 февраля 2012

Нет, * - это квантификатор , который изменяет значение предыдущего символа, группы или класса символов в регулярном выражении.Само по себе это бессмысленно.Он имеет значение только в сочетании с тем, что находится непосредственно перед ним в регулярном выражении.

Итак, .* означает любой символ, встречающийся 0 или более раз, a* означает a, появляющийся 0 или более раз, ии так далее.

1 голос
/ 14 февраля 2012

. означает любой символ.* означает предыдущий символ (или группу) 0 или более раз.Так .* означает любой символ 0 или более раз.Вот и все

1 голос
/ 14 февраля 2012

Значение X*: «X, ноль или более раз» (см. здесь ). * является только квантификатором.

1 голос
/ 14 февраля 2012

В регулярных выражениях * само по себе ничего не значит. Он изменяет выражение перед ним. Может возникнуть путаница с подстановочными знаками , где * означает то же самое, что и .* в регулярных выражениях. В регулярных выражениях * само по себе или в качестве первого символа в выражении недопустимо.

0 голосов
/ 14 февраля 2012

ab*de будет соответствовать ade, abde, abbde, abbbde, abbbbde и т. Д.

ab.*de будет соответствовать всем вышеперечисленным, кроме ade.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...