Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Nov 2017 12:47:54 -0500
From:      "James B. Byrne" <byrnejb@harte-lyne.ca>
To:        freebsd-questions@freebsd.org
Subject:   Regex character and collation calss documentation
Message-ID:  <41c47638eec0e1a562f4446c7fe5a2df.squirrel@webmail.harte-lyne.ca>

next in thread | raw e-mail | index | archive | help
I have been perusing the available documentation respecting regex on
FreeBSD and cannot find a reference to [.NUL.]. Everything that I have
found points to ctype.h. The only class names I can find therein are:

int     isalnum(int);   [:alnum:]
int     isalpha(int);   [:alpha:]
int     iscntrl(int);   [:cntrl:]
int     isdigit(int);   [:digit:]
int     isgraph(int);   [:graph:]
int     islower(int);   [:lower:]
int     isprint(int);   [:print:]
int     ispunct(int);   [:punct:]
int     isspace(int);   [:space:]
int     isupper(int);   [:upper:]
int     isxdigit(int);  [:xdigit:]

>From reading the reference at
https://docs.freebsd.org/info/regex/regex.pdf and comparing it to the
uncommented lines in ctype.h on my FreeBSD-11.1 desktop host one could
reasonably deduce that the following should be available on FreeBSD in
addition to the above:

int     isascii(int);   [:ascii:]

int     isblank(int);   [:blank:]

int     ishexnumber(int); [:hexnumber:]
int     isideogram(int);  [:ideogram:]
int     isnumber(int);    [:number:]
int     isphonogram(int); [:phonogram:]
int     isrune(int);      [:rune:]
int     isspecial(int);   [:special:]

But of these only [[:blank:]] is recognized by grep; whatever else
might employ the rest.

[[:ascii:]]
grep: Invalid character class name
[[:hexnumber:]]
grep: Invalid character class name
[[:ideogram:]]
grep: Invalid character class name
[[:number:]]
grep: Invalid character class name
[[:phonogram:]]
grep: Invalid character class name
[[:rune:]]
grep: Invalid character class name
[[:special:]]
grep: Invalid character class name


However I see no reference to [.NUL.] anywhere.  The sed man page has
no reference to nul or NUL at all and tr only has this to say:

     The tr utility has historically not permitted the manipulation
     of NUL bytes in its input and, additionally, stripped NUL's from
     its input stream.  This implementation has removed this behavior
     as a bug.


Is there a master list of character/collation classes for FreeBSD
regex?  I have read the man pages for grep and re_format.  In no case
is the character or collation class NUL mentioned.

Where is the usage of [.NUL.] documented?

-- 
***          e-Mail is NOT a SECURE channel          ***
        Do NOT transmit sensitive data via e-Mail
 Do NOT open attachments nor follow links sent by e-Mail

James B. Byrne                mailto:ByrneJB@Harte-Lyne.ca
Harte & Lyne Limited          http://www.harte-lyne.ca
9 Brockley Drive              vox: +1 905 561 1241
Hamilton, Ontario             fax: +1 905 561 0757
Canada  L8E 3C3




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41c47638eec0e1a562f4446c7fe5a2df.squirrel>