(coreutils.info)String expressions


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

16.4.1 String expressions
-------------------------

`expr' supports pattern matching and other string operators.  These
have higher 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.

`+ 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
     + "$x"' or `expr + "$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.  Portable shell
     scripts should use `" $token" : ' \(.*\)'' instead of `+ "$token"'.


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


automatically generated by info2www version 1.2.2.9