GNU Info

Info Node: (sh-utils.info)String expressions

(sh-utils.info)String expressions


Next: Numeric expressions Up: expr invocation
Enter node , (file) or (file)node

String expressions
------------------

   `expr' supports pattern matching and other string operators.  These
have lower precedence than both the numeric and relational operators (in
the next sections).

`STRING : REGEX'
     Perform pattern matching.  The arguments are converted to strings
     and the second is considered to be a (basic, a la GNU `grep')
     regular expression, with a `^' implicitly prepended.  The first
     argument is then matched against this regular expression.

     If the match succeeds and REGEX uses `\(' and `\)', the `:'
     expression returns the part of STRING that matched the
     subexpression; otherwise, it returns the number of characters
     matched.

     If the match fails, the `:' operator returns the null string if
     `\(' and `\)' are used in REGEX, otherwise 0.

     Only the first `\( ... \)' pair is relevant to the return value;
     additional pairs are meaningful only for grouping the regular
     expression operators.

     In the regular expression, `\+', `\?', and `\|' are operators
     which respectively match one or more, zero or one, or separate
     alternatives.  SunOS and other `expr''s treat these as regular
     characters.  (POSIX allows either behavior.)  Note: Regular
     Expression Library, for details of regular expression
     syntax.  Some examples are in Note: Examples of expr.

`match STRING REGEX'
     An alternative way to do pattern matching.  This is the same as
     `STRING : REGEX'.

`substr STRING POSITION LENGTH'
     Returns the substring of STRING beginning at POSITION with length
     at most LENGTH.  If either POSITION or LENGTH is negative, zero,
     or non-numeric, returns the null string.

`index STRING CHARSET'
     Returns the first position in STRING where the first character in
     CHARSET was found.  If no character in CHARSET is found in STRING,
     return 0.

`length STRING'
     Returns the length of STRING.

`quote TOKEN'
     Interpret TOKEN as a string, even if it is a keyword like MATCH or
     an operator like `/'.  This makes it possible to test `expr length
     quote "$x"' or `expr quote "$x" : '.*/\(.\)'' and have it do the
     right thing even if the value of $X happens to be (for example)
     `/' or `index'.  This operator is a GNU extension.  It is disabled
     when the environment variable `POSIXLY_CORRECT' is set.

   To make `expr' interpret keywords as strings, you must use the
`quote' operator.


automatically generated by info2www version 1.2.2.9