Gwiazdka to tylko operator powtórzenia , ale musisz powiedzieć, co powtarzasz. /*abc*/dopasowuje ciąg zawierający ab i zero lub więcej c (ponieważ druga * znajduje się na c; pierwsza jest bez znaczenia, ponieważ nie ma nic do powtórzenia). Jeśli chcesz coś dopasować, musisz powiedzieć .*- kropka oznacza dowolny znak ( w określonych wytycznych ). Jeśli chcesz po prostu dopasować abc, możesz po prostu powiedzieć grep 'abc' myFile. Aby uzyskać bardziej złożone dopasowanie, musisz użyć .*- grep 'abc.*def' myFiledopasuje ciąg zawierający abc, po którym następuje def, z czymś opcjonalnie pomiędzy.
Aktualizacja na podstawie komentarza:
*w wyrażeniu regularnym nie jest dokładnie tym samym, co * w konsoli. W konsoli * jest częścią konstrukcji glob i działa tylko jako symbol wieloznaczny (na przykład ls *.logwyświetla listę wszystkich plików kończących się na .log). Jednak w wyrażeniach regularnych * jest modyfikatorem, co oznacza, że ma zastosowanie tylko do poprzedzającego go znaku lub grupy. Jeśli chcesz, aby * w wyrażeniach regularnych działał jak symbol wieloznaczny, musisz użyć tego, .*jak wspomniano wcześniej - kropka jest symbolem wieloznacznym, a gwiazdka podczas modyfikowania kropki oznacza znalezienie jednej lub więcej kropek; to znaczy. znajdź jedną lub więcej dowolnych postaci.