Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ regex(1F) — Motorola System V 88k Release 3.2 Version 1.2C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sed(1)

grep(1)

cut(1)

paste(1)

regcmp(3)

REGEX(1F)

Utilities)REGEX(1F)



  REGEX(1F) (Form and Menu Language Interpreter Utilities)REGEX(1F)



  NAME
       regex - match patterns against a string

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

  DESCRIPTION
       The regex command takes a string (from stdin, or supplied
       with -v) and a list of pattern/template pairs, and runs
       regex(3X) on the string vs. each of the patterns until there
       is a match.  When a match occurs, it 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.

       The -e option tells the function to evaluate the
       corresponding template and write the result to stdout.

       The patterns are regular expressions of the form described
       in regex(3X).  In most cases the pattern should be enclosed
       in single quotes to turn off special meanings of characters.

       The template may contain the strings $m0 through $m9, which
       will be expanded to the part of the pattern enclosed in (
       ... )$0 through ( ... )$9 constructs (see examples below).
       Note that if you use this feature, you must be sure to
       enclose the template in single quotes so that the
       Interpreter doesn't expand the $m0 through $m9 variables 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".  Note that only the final
       pattern may lack a template.

  EXAMPLES
       To "cut" the 4th through 8th letters out of a string:



  Page 1                                                   May 1989


















  REGEX(1F) (Form and Menu Language Interpreter Utilities)REGEX(1F)



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

       In a form, for validating input 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 descriptor 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 descriptor file being parsed, this
       expression would read /etc/passwd and make a virtual menu of
       all the login ids on the system.
          `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.

  WARNING
       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 the Interpreter will expand the variables
       (usually to "") before regex even sees them.

  SEE ALSO
       sed(1), grep(1), cut(1), paste(1), regcmp(3)



  Page 2                                                   May 1989


















  REGEX(1F) (Form and Menu Language Interpreter Utilities)REGEX(1F)



  BUGS
       The regular expressions accepted by regex differ slightly
       from other utilities (i.e., sed, grep, awk, ed, etc.).

       The regex command with the -e option forces subsequent
       commands to be ignored.  In other words, if a backquoted
       statement appears as
          `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.






























  Page 3                                                   May 1989
















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