2011-12-26 10 views
10

Czytam strona GNU find jest człowiek i natrafiają na tego przełącznika:Różnice między regex typów

-regextype type 
      Changes the regular expression syntax understood by -regex and 
      -iregex tests which occur later on the command line. Currently- 
      implemented types are emacs (this is the default), posix-awk, posix- 
      basic, posix-egrep and posix-extended. 

Jaka jest różnica między tymi regex składni? Jestem bardziej zaznajomiony z wyrażeń regularnych Rubiego, więc jaki rodzaj wyrażeń regularnych powinienem używać z find?

+1

Zajrzyj tutaj: http://www.regular-expressions.info/refflavors.html – fge

+1

Hmm dzięki, znalazłem ten URL: http://www.gnu.org/software/findutils/manual/html_node/ find_html/Regular-Expressions.html, które prawie odpowiadają na moje pierwsze pytanie. – Lamnk

Odpowiedz

3

Wyrażenia regularne są realizowane na wiele sposobów. Wyrażenia rozszerzone POSIX znają te same metaznaki co wyrażeń podstawowych POSIX, ale z kilkoma dodatkami, jak widać on this page.

W niektórych przypadkach można chcieć użyć określonej metaznaków znanej z jednej z tych implementacji i można użyć tej opcji, aby poinformować, którego z nich używasz. Jeśli potrzebujesz tylko bardziej podstawowego wyrażenia, wystarczy posix-basic.

Możliwe, że wolisz typ RegEx, do którego jesteś przyzwyczajony, a find potrafi poprawnie zinterpretować.

Jak wspomniano w fge, należy użyć this site, aby dowiedzieć się więcej o różnicach między składniami RegEx.