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' myFile
dopasuje 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 *.log
wyś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.