TIP: Click on subject to list as thread! ANSI
echo: qedit
to: ALL
from: `PETER BIRCH`
date: 1998-02-07 00:14:00
subject: Re: regular expressions

From: "Peter Birch" 
>Recently, as part of a discussion of illegal newsgroup names, I wanted
>to do a search thru a plain text version of the 22,000 newsgroups on
>this server, trying to find groups with names over the 14-character unit
>Recently, as part of a discussion of illegal newsgroup names, I wanted
>to do a search thru a plain text version of the 22,000 newsgroups on
>this server, trying to find groups with names over the 14-character unit
>limit, such as "alt.conspiracy.new-world-order" where "new-world-order"
>limit, such as "alt.conspiracy.new-world-orders" where "new-world-order"
>limit, such as "alt.conspiracy.new-world-orderss" where "new-world-order"
>limit, such as "alt.conspiracy.new-world-orde" where "new-world-order"
>limit, such as "alt.conspiracy.new-world-ord" where "new-world-order"
>limit, such as "alt.conspiracy.new-world-or" where "new-world-order"
>limit, such as "alt.conspiracy.new-world-o" where "new-world-order"
>limit, such as "alt.conspiracy.new-world-" where "new-world-order"
>limit, such as "alt.conspiracy.new-world" where "new-world-order"
>has 15 characters after the last dot.
>
>I could do a search for   \.[0-9a-z_+-]#.*      , that is,
>
>a dot followed by *1* or more occurrences of 0-9, a-z, _ or + or -,
>optionally followed by a '.' if the string wasn't the last part of the
>name.  I couldn't find a way to limit it to *15* or more occurrences of
>the first range.  Is there one? -- Jorj.Strumolo@chowda.com * Fido
>1:323/140 * jorj@wsii.com
>
This is as close as I can come:
\.[+-z]#\.......[+-z][+-z][+-z][+-z][+-z][+-z][+-z][+-z][+-z]
This works as long as there is not a space within six characters after
the second period followed by 9 non-white characters.
This could be done with a macro however, Find() leaves the found text
marked, you could then do a search for a space within the marked block
and if you find one then this is not an invalid name.
proc main ()
  pushblock()
  if (find("\.[+-z]#\.......[+-z][+-z][+-z][+-z][+-z][+-z][+-z][+-z][+-z]", 
"GIX"))
        repeat
            if (not lfind(" ", "l"))
                warn("Name too long!")
            endif
        until (not repeatfind(_FORWARD_))
    endif
    popblock()
end
---
---------------
* Origin: apana>>>>>fidonet [sawasdi.apana.org.au] (3:800/846.13)

SOURCE: echomail via exec-pc

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.