使用 grep 时的正则表达式文档

发布于 2024-11-27 14:33:55 字数 187 浏览 1 评论 0原文

我正在尝试找到一些有关正则表达式中的字符类的综合文档,这些文档可以在使用 grep 时使用。我尝试过

info grep
man grep
man 7 regex 

,但找不到文档中列出的所有字符类。

我正在寻找一些关于 grep 使用的正则表达式的综合文档。有这样的文档吗?

I am trying to find some comprehensive documentation on character classes in regular expressions that could be used while using grep. I tried

info grep
man grep
man 7 regex 

but could not find all the characters classes listed down in the documentation.

I am looking for some comprehensive documentation on regex that grep uses. Is there such a documentation available?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

对你而言 2024-12-04 14:33:55

grep 对正则表达式有三个选项 -E 或 --extended-regexp -G 或 --basic-regexp-P 或 --perl-regexp代码>.

扩展/基本正则表达式类:遵循 POSIX 类

Perl 正则表达式类:遵循 Perl 类


从命令行可以通过 man 7 访问 POSIX 正则表达式信息regex 其中 Perl regex 数据可以通过 perldoc perlre 访问

grep has three options for regex -E or --extended-regexp -G or --basic-regexp and -P or --perl-regexp.

Extended / Basic Regex Classes: Follow POSIX Classes

Perl Regex Classes: Follow Perl Classes


From the command line POSIX regex information can be accessed via man 7 regex where as Perl regex data can be accessed via perldoc perlre

╰つ倒转 2024-12-04 14:33:55

http://linux.about.com/od/commands/l/blcmdl1_grep.htm

最后,某些命名的字符类别在
括号表达式如下。他们的名字是不言自明的,并且
它们是 [:alnum:]、[:alpha:]、[:cntrl:]、[:digit:]、[:graph:]、
[:lower:]、[:print:]、[:punct:]、[:space:]、[:upper:] 和 [:xdigit:]。
例如,[[:alnum:]] 表示 [0-9A-Za-z],后一种形式除外
取决于 C 语言环境和 ASCII 字符编码,而
前者独立于语言环境和字符集。

http://linux.about.com/od/commands/l/blcmdl1_grep.htm

Finally, certain named classes of characters are predefined within
bracket expressions, as follows. Their names are self explanatory, and
they are [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:],
[:lower:], [:print:], [:punct:], [:space:], [:upper:], and [:xdigit:].
For example, [[:alnum:]] means [0-9A-Za-z], except the latter form
depends upon the C locale and the ASCII character encoding, whereas
the former is independent of locale and character set.

泪冰清 2024-12-04 14:33:55

当我执行 man grep 时,我得到的是:

REGULAR EXPRESSIONS
       A  regular  expression  is  a  pattern that describes a set of strings.  Regular expressions are constructed
       analogously to arithmetic expressions, by using various operators to combine smaller expressions.

       grep understands two different versions of regular expression syntax: "basic" and "extended."  In  GNU grep,
       there  is  no  difference  in  available functionality using either syntax.  In other implementations, basic
       regular expressions are less powerful.  The following description applies to extended  regular  expressions;
       differences for basic regular expressions are summarized afterwards.

       The fundamental building blocks are the regular expressions that match a single character.  Most characters,
       including all letters and digits, are regular expressions that match themselves.   Any  meta-character  with
       special meaning may be quoted by preceding it with a backslash.

       The period . matches any single character.

   Character Classes and Bracket Expressions
       A  bracket  expression is a list of characters enclosed by [ and ].  It matches any single character in that
       list; if the first character of the list is the caret ^ then it matches any character not in the list.   For
       example, the regular expression [0123456789] matches any single digit.

       Within  a  bracket  expression,  a  range  expression  consists of two characters separated by a hyphen.  It
       matches any single character that sorts between the two characters, inclusive, using the locale's  collating
       sequence  and  character  set.   For  example, in the default C locale, [a-d] is equivalent to [abcd].  Many
       locales sort characters in dictionary order, and in these locales  [a-d]  is  typically  not  equivalent  to
       [abcd];  it  might  be  equivalent  to  [aBbCcDd], for example.  To obtain the traditional interpretation of
       bracket expressions, you can use the C locale by setting the LC_ALL environment variable to the value C.

       Finally, certain named classes of characters are predefined within bracket expressions, as  follows.   Their
       names  are  self explanatory, and they are [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:], [:lower:],
       [:print:], [:punct:], [:space:], [:upper:], and [:xdigit:].  For  example,  [[:alnum:]]  means  [0-9A-Za-z],
       except  the  latter  form  depends upon the C locale and the ASCII character encoding, whereas the former is
       independent of locale and character set.  (Note that the brackets in these  class  names  are  part  of  the
       symbolic  names,  and must be included in addition to the brackets delimiting the bracket expression.)  Most
       meta-characters lose their special meaning inside bracket expressions.  To include  a  literal  ]  place  it
       first  in  the  list.  Similarly, to include a literal ^ place it anywhere but first.  Finally, to include a
       literal - place it last.

   Anchoring
       The caret ^ and the dollar sign $ are meta-characters that  respectively  match  the  empty  string  at  the
       beginning and end of a line.

   The Backslash Character and Special Expressions
       The symbols \< and \> respectively match the empty string at the beginning and end of a word.  The symbol \b
       matches the empty string at the edge of a word, and \B matches the empty string provided  it's  not  at  the
       edge of a word.  The symbol \w is a synonym for [[:alnum:]] and \W is a synonym for [^[:alnum:]].

   Repetition
       A regular expression may be followed by one of several repetition operators:
       ?      The preceding item is optional and matched at most once.
       *      The preceding item will be matched zero or more times.
       +      The preceding item will be matched one or more times.
       {n}    The preceding item is matched exactly n times.
       {n,}   The preceding item is matched n or more times.
       {,m}   The preceding item is matched at most m times.
       {n,m}  The preceding item is matched at least n times, but not more than m times.

   Concatenation
       Two  regular  expressions may be concatenated; the resulting regular expression matches any string formed by
       concatenating two substrings that respectively match the concatenated expressions.

   Alternation
       Two regular expressions may be joined by the infix operator |; the resulting regular expression matches  any
       string matching either alternate expression.

   Precedence
       Repetition  takes  precedence  over concatenation, which in turn takes precedence over alternation.  A whole
       expression may be enclosed in parentheses to override these precedence rules and form a subexpression.

   Back References and Subexpressions
       The back-reference \n, where n is a single digit, matches  the  substring  previously  matched  by  the  nth
       parenthesized subexpression of the regular expression.

   Basic vs Extended Regular Expressions
       In  basic  regular  expressions the meta-characters ?, +, {, |, (, and ) lose their special meaning; instead
       use the backslashed versions \?, \+, \{, \|, \(, and \).

       Traditional egrep did not support the { meta-character, and some egrep implementations support  \{  instead,
       so portable scripts should avoid { in grep -E patterns and should use [{] to match a literal {.

       GNU grep -E attempts to support traditional usage by assuming that { is not special if it would be the start
       of an invalid interval specification.  For example, the command grep -E '{1' searches for the  two-character
       string {1 instead of reporting a syntax error in the regular expression.  POSIX.2 allows this behavior as an
       extension, but portable scripts should avoid it.

正则表达式太棒了!

When I do man grep, this is what I get:

REGULAR EXPRESSIONS
       A  regular  expression  is  a  pattern that describes a set of strings.  Regular expressions are constructed
       analogously to arithmetic expressions, by using various operators to combine smaller expressions.

       grep understands two different versions of regular expression syntax: "basic" and "extended."  In  GNU grep,
       there  is  no  difference  in  available functionality using either syntax.  In other implementations, basic
       regular expressions are less powerful.  The following description applies to extended  regular  expressions;
       differences for basic regular expressions are summarized afterwards.

       The fundamental building blocks are the regular expressions that match a single character.  Most characters,
       including all letters and digits, are regular expressions that match themselves.   Any  meta-character  with
       special meaning may be quoted by preceding it with a backslash.

       The period . matches any single character.

   Character Classes and Bracket Expressions
       A  bracket  expression is a list of characters enclosed by [ and ].  It matches any single character in that
       list; if the first character of the list is the caret ^ then it matches any character not in the list.   For
       example, the regular expression [0123456789] matches any single digit.

       Within  a  bracket  expression,  a  range  expression  consists of two characters separated by a hyphen.  It
       matches any single character that sorts between the two characters, inclusive, using the locale's  collating
       sequence  and  character  set.   For  example, in the default C locale, [a-d] is equivalent to [abcd].  Many
       locales sort characters in dictionary order, and in these locales  [a-d]  is  typically  not  equivalent  to
       [abcd];  it  might  be  equivalent  to  [aBbCcDd], for example.  To obtain the traditional interpretation of
       bracket expressions, you can use the C locale by setting the LC_ALL environment variable to the value C.

       Finally, certain named classes of characters are predefined within bracket expressions, as  follows.   Their
       names  are  self explanatory, and they are [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:], [:lower:],
       [:print:], [:punct:], [:space:], [:upper:], and [:xdigit:].  For  example,  [[:alnum:]]  means  [0-9A-Za-z],
       except  the  latter  form  depends upon the C locale and the ASCII character encoding, whereas the former is
       independent of locale and character set.  (Note that the brackets in these  class  names  are  part  of  the
       symbolic  names,  and must be included in addition to the brackets delimiting the bracket expression.)  Most
       meta-characters lose their special meaning inside bracket expressions.  To include  a  literal  ]  place  it
       first  in  the  list.  Similarly, to include a literal ^ place it anywhere but first.  Finally, to include a
       literal - place it last.

   Anchoring
       The caret ^ and the dollar sign $ are meta-characters that  respectively  match  the  empty  string  at  the
       beginning and end of a line.

   The Backslash Character and Special Expressions
       The symbols \< and \> respectively match the empty string at the beginning and end of a word.  The symbol \b
       matches the empty string at the edge of a word, and \B matches the empty string provided  it's  not  at  the
       edge of a word.  The symbol \w is a synonym for [[:alnum:]] and \W is a synonym for [^[:alnum:]].

   Repetition
       A regular expression may be followed by one of several repetition operators:
       ?      The preceding item is optional and matched at most once.
       *      The preceding item will be matched zero or more times.
       +      The preceding item will be matched one or more times.
       {n}    The preceding item is matched exactly n times.
       {n,}   The preceding item is matched n or more times.
       {,m}   The preceding item is matched at most m times.
       {n,m}  The preceding item is matched at least n times, but not more than m times.

   Concatenation
       Two  regular  expressions may be concatenated; the resulting regular expression matches any string formed by
       concatenating two substrings that respectively match the concatenated expressions.

   Alternation
       Two regular expressions may be joined by the infix operator |; the resulting regular expression matches  any
       string matching either alternate expression.

   Precedence
       Repetition  takes  precedence  over concatenation, which in turn takes precedence over alternation.  A whole
       expression may be enclosed in parentheses to override these precedence rules and form a subexpression.

   Back References and Subexpressions
       The back-reference \n, where n is a single digit, matches  the  substring  previously  matched  by  the  nth
       parenthesized subexpression of the regular expression.

   Basic vs Extended Regular Expressions
       In  basic  regular  expressions the meta-characters ?, +, {, |, (, and ) lose their special meaning; instead
       use the backslashed versions \?, \+, \{, \|, \(, and \).

       Traditional egrep did not support the { meta-character, and some egrep implementations support  \{  instead,
       so portable scripts should avoid { in grep -E patterns and should use [{] to match a literal {.

       GNU grep -E attempts to support traditional usage by assuming that { is not special if it would be the start
       of an invalid interval specification.  For example, the command grep -E '{1' searches for the  two-character
       string {1 instead of reporting a syntax error in the regular expression.  POSIX.2 allows this behavior as an
       extension, but portable scripts should avoid it.

Regular expressions are awesome!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文