Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ regex(1F) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

awk(1)

cut(1)

grep(1)

paste(1)

sed(1)

regcmp(3G)

regex(3G)

regex(1F)           (Form and Menu Language Interpreter)          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 stdin and a list of
     pattern/template pairs and runs regex(3G) to compare the string
     against each pattern until there is a match. When a match occurs,
     regex writes the corresponding template to stdout and returns TRUE.
     The last (or only) pattern does not need a template. If that is the
     pattern that matches the string, the function simply returns TRUE. If
     no match is found, regex returns FALSE.

OPTIONS
     -e   regex evaluates the corresponding template and writes the result
          to stdout.

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

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

     The argument template may contain the strings $m0 through $m9, which
     is expanded to the part of pattern enclosed in (...)$0 through (...)$9
     constructs. 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
     The following example shows you how to cut the 4th through 8th letters
     out of a string. This example will output strin and return TRUE:

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

     This example shows you how to to validate input to field 5 as an
     integer in a form.

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

     This example shows you how to to translate an environment variable
     which contains one of the numbers 1, 2, 3, 4, 5 to the letters a, b,
     c, d, e in a form.

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



Page 1                       Reliant UNIX 5.44                Printed 11/98

regex(1F)           (Form and Menu Language Interpreter)          regex(1F)

     Use the pattern '.*' to mean anything else.

     In the following example, all three lines constitute a single
     backquoted expression. This expression, by itself, could be put in a
     menu definition file. Backquoted expressions are expanded as they are
     parsed. Output from a backquoted expression becomes part of the defin-
     ition file being parsed. The expression in this example would read
     /etc/passwd and make a dynamic menu of all the login IDs on the sys-
     tem.

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

DIAGNOSTICS
     If none of the patterns match, regex returns FALSE, otherwise TRUE.

NOTES
     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 expands the vari-
     ables (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 (for example, sed, grep, awk, or ed).

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

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

     command1 and command2 would never be executed. However, dividing the
     expression into two would yield the desired result.

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

SEE ALSO
     awk(1), cut(1), grep(1), paste(1), sed(1), regcmp(3G), regex(3G).











Page 2                       Reliant UNIX 5.44                Printed 11/98

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