Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ regex(1F) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

awk(1)

cut(1)

grep(1)

paste(1)

regcmp(3G)

sed(1)






       regex(1F)                                                  regex(1F)


       NAME
             regex - match patterns against a string

       SYNOPSIS
             regex [-e] [-v "string"] [pattern template] . . . pattern [template]

       DESCRIPTION
             The regex command takes a string from standard input, and a
             list of pattern/template pairs, and runs the regex function
             defined in regcmp(3G) to compare the string against each
             pattern until there is a match.  When a match occurs, regex
             writes the corresponding template to stdout.  The last (or
             only) pattern does not need a template.  If that pattern
             matches the string, regex returns TRUE.  If no match is found,
             regex returns FALSE.

             -e        means regex will evaluate the corresponding template
                       and write the result to stdout.

             -v "string"
                       If -v is specified, string will be used instead of
                       stdin to match against patterns.

             The argument pattern is a regular expression of the form
             described in regcmp(3G).  In most cases pattern should be
             enclosed in single quotes to turn off special meanings of
             characters.  Note that only the final pattern in the list may
             lack a template.

             The argument template may contain the strings $m0 through $m9,
             which will be expanded to the part of pattern enclosed in (
             ... )$0 through ( ... )$9 constructs (see examples below).
             Note that if you use this feature, you must be sure to enclose
             template in single quotes so that FMLI doesn't expand $m0
             through $m9 at parse time.  This feature gives regex much of
             the power of cut(1), paste(1), and grep(1), and some of the
             capabilities of sed(1).  If there is no template, the default
             is "$m0$m1$m2$m3$m4$m5$m6$m7$m8$m9".

       EXAMPLES
             To cut the 4th through 8th letters out of a string (this
             example will output string).

                   `regex -v "my string is nice" '^.{3}(.{5})$0' '$m0'`




                           Copyright 1994 Novell, Inc.               Page 1













      regex(1F)                                                  regex(1F)


            In a form, to validate input to field 5 as an integer:

                  valid=`regex -v "$F5" '^[0-9]+$'`

            In a form, to translate an environment variable which contains
            one of the numbers 1, 2, 3, 4, 5 to the letters a, b, c, d, e:

                  value=`regex -v "$VAR1" 1 a 2 b 3 c 4 d 5 e '.*' 'Error'`

            Note the use of the pattern '.*' to mean ``anything else.''

            In the example below, all three lines constitute a single
            backquoted expression.  This expression, by itself, could be
            put in a menu definition file.  Since backquoted expressions
            are expanded as they are parsed, and output from a backquoted
            expression (the cat command, in this example) becomes part of
            the definition file being parsed, this expression would read
            /etc/passwd and make a dynamic menu of all the login ids on
            the system.

                  `cat /etc/passwd | regex '^([^:]*)$0.*$' '
                  name=$m0
                  action=`message "$m0 is a user"`'`

      DIAGNOSTICS
            If no patterns match, regex returns FALSE, otherwise regex
            returns TRUE.

      NOTICES
            Patterns and templates must often be enclosed in single quotes
            to turn off the special meanings of characters.  Especially if
            you use the $m0 through $m9 variables in the template, since
            FMLI will expand the variables (usually to "") before regex
            even sees them.

            Single characters in character classes (inside []) must be
            listed before character ranges, otherwise they will not be
            recognized.  For example, [a-zA-Z_/] will not find underscores
            (_) or slashes (/), but [_/a-zA-Z] will.

            The regular expressions accepted by regcmp differ slightly
            from other utilities (that is, sed, grep, awk, ed, and so on).

            regex with the -e option forces subsequent commands to be
            ignored.  In other words if a backquoted statement appears as
            follows:


                          Copyright 1994 Novell, Inc.               Page 2













       regex(1F)                                                  regex(1F)


                   `regex -e ...; command1; command2`

             command1 and command2 would never be executed.  However,
             dividing the expression into two:

                   `regex -e ...```command1; command2`

             would yield the desired result.

       REFERENCES
             awk(1), cut(1), grep(1), paste(1), regcmp(3G), sed(1)





































                           Copyright 1994 Novell, Inc.               Page 3








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026