mIRC Home    About    Download    Register    News    Help

Print Thread
#187817 13/10/07 12:00 PM
B
BanJirian
BanJirian
B
Code:
 
    if ($regex($3-,/[[:cntrl:]]/g) > 49) { .signal -n d $1-2 codes } 
    if ($regex($3-,/[[:upper:]]/g) > 49) { .signal -n d $1-2 caps } 
    if ($regex($3-,/\d/g) > 49) { .signal -n d $1-2 number }
    if ($regex($3-,/[[:punct:]]/g) > 49) { .signal -n d $1-2 symbol } 
    if ($regex($3-,/[ $chr(174) ]/g) > 49) { .signal -n d $1-2 ascii } 
    if ($regex($3-,/[ $chr(160) ]/g) > 49) { .signal -n d $1-2 blur } 
    if ($regex($3-,/./g) > 199) { .signal -n d $1-2 lenght }
    if ($regex($3-,/(#|http://|www.|.com|.net|.org)/i)) { .signal -n d $1-2 advertise }
    if ($regex($3-,/\b(fucck|sck|shyit|btch)\b/i)) { .signal -n d $1-2 swear }


Can somebody give me diff way besides using $regex(with example). I need fastest way rather than using $regex. This is just a simple comparison so think besides using $regex there is other best way and hope somebody could gimme the example.

#187925 15/10/07 05:27 AM
L
Lpfix5
Lpfix5
L
Originally Posted By: BanJirian
Code:
 
    if ($regex($3-,/[[:cntrl:]]/g) > 49) { .signal -n d $1-2 codes } 
    if ($regex($3-,/[[:upper:]]/g) > 49) { .signal -n d $1-2 caps } 
    if ($regex($3-,/\d/g) > 49) { .signal -n d $1-2 number }
    if ($regex($3-,/[[:punct:]]/g) > 49) { .signal -n d $1-2 symbol } 
    if ($regex($3-,/[ $chr(174) ]/g) > 49) { .signal -n d $1-2 ascii } 
    if ($regex($3-,/[ $chr(160) ]/g) > 49) { .signal -n d $1-2 blur } 
    if ($regex($3-,/./g) > 199) { .signal -n d $1-2 lenght }
    if ($regex($3-,/(#|http://|www.|.com|.net|.org)/i)) { .signal -n d $1-2 advertise }
    if ($regex($3-,/\b(fucck|sck|shyit|btch)\b/i)) { .signal -n d $1-2 swear }


Can somebody give me diff way besides using $regex(with example). I need fastest way rather than using $regex. This is just a simple comparison so think besides using $regex there is other best way and hope somebody could gimme the example.


I think regex is the best here.. else I think this is another way of doing it.

Code:
  if ($len($3-) > 49) { 
    if ($isupper($3-) == $true) { .signal -n d $1-2 caps }
    if ($3- isnum) { .signal -n d $1-2 Number }
    if ($chr(174) isin $3-) { .signal -n d $1-2 ascii }
    if ($chr(16) isin $3-) { .signal -n d $1-2 blur }
  }
  if ($len($3-) > 199) { .signal -n d $1-2 length }
  if (fucck isin $3-) || (sck isin $3-) || (shyit isin $3-) || (btch isin $3-) { .signal -n d $1-2 swear }
  if ($chr(35) isin $3-) || (www. isin $3-) || (.com isin $3-) || (.net isin $3-) || (.org isin $3-) { .signal -n d $1-2 advertise }

#187928 15/10/07 08:09 AM
B
Bekar
Bekar
B
Lpfix5 got some of 'em..

But here's my opinion..

Code:
if ($regex($3-,/[[:cntrl:]]/g) > 49) { .signal -n d $1-2 codes }
if ($regex($3-,/[[:upper:]]/g) > 49) { .signal -n d $1-2 caps }
if ($regex($3-,/\d/g) > 49) { .signal -n d $1-2 number }
if ($regex($3-,/[[:punct:]]/g) > 49) { .signal -n d $1-2 symbol } 
if ($regex($3-,/[ $chr(174) ]/g) > 49) { .signal -n d $1-2 ascii } 
if ($regex($3-,/[ $chr(160) ]/g) > 49) { .signal -n d $1-2 blur }

As good as it'll probably get. To do this sort of character-counting using any other method involves looping 'n stuff.

Code:
if ($regex($3-,/./g) > 199) { .signal -n d $1-2 lenght }

Lpfix5 has this one right, just a plain $len().

Code:
if ($regex($3-,/(#|http://|www.|.com|.net|.org)/i)) { .signal -n d $1-2 advertise }

The expression could be tightened up a bit, but it's the easiest way.

Code:
if ($regex($3-,/\b(fucck|sck|shyit|btch)\b/i)) { .signal -n d $1-2 swear }

This is the quicked/easiest way for a static list of words. If you want a dynamic list of words, there are other ways, but doing the 'isin' method is nowhere near as efficient in my mind (also nowhere near as accurate. 'isin' will match partial words. The \b(pattern|pattern)\b method is much more accurate.).

#187934 15/10/07 10:54 AM
B
BanJirian
BanJirian
B
what about punctuation and cntrl codes ?

#187942 15/10/07 12:27 PM
B
Bekar
Bekar
B
The looking for excess of each is best handled like the existing $regex() in my opinion. To count them with a while loop would be wasteful.

Now that I think about it a bit further, you should probably include the initial $len($3-) that Lpfix5 had there, so as not to bother doing a check if the string is less than 49 characters (as you're min. count is 49, it will never match a string that's 20 characters long. to just skip the checks when they aren't needed basically).

#187950 15/10/07 04:21 PM
L
Lpfix5
Lpfix5
L
In theory im not sure what he needed, because to me it would mean that $3- would be alot of ascii or numbers or whatever... and the length would be greater then 49 that's why I included the length check as standard procedure. I just went by what the regex functions were.

as far as CTRL codes

Code:
if ( isin $3-) || ( isin $3-) || (	 isin $3-) || ( isin $3-) || ( isin $3-) { .signal -n d $1-2 Codes }


this checks for color, bold, italic, highlight and underline

#187964 15/10/07 09:24 PM
B
Bekar
Bekar
B
Yeah, but it doesn't count how many of them have been used.

#188037 16/10/07 06:26 PM
D
deegee
deegee
D
One simple way to speed it up is to use elseif so if a match is made the rest of the if's are skipped.

Code:
    if ($regex($3-,/\b(fucck|sck|shyit|btch)\b/Si)) { .signal -n d $1-2 swear }
    elseif ($regex($3-,/(#|http://|www.|.com|.net|.org)/Si)) { .signal -n d $1-2 advertise }

    elseif ($len($3-) < 50) { return }
    elseif ($v1 > 199) { .signal -n d $1-2 lenght } | ; <<- lenght? or length?
    elseif ($regex($3-,/[[:cntrl:]]/g) > 49) { .signal -n d $1-2 codes } 
    elseif ($regex($3-,/[[:upper:]]/g) > 49) { .signal -n d $1-2 caps } 
    elseif ($regex($3-,/\d/g) > 49) { .signal -n d $1-2 number }
    elseif ($regex($3-,/[[:punct:]]/g) > 49) { .signal -n d $1-2 symbol } 
    elseif ($regex($3-,/[ $chr(174) ]/g) > 49) { .signal -n d $1-2 ascii } 
    elseif ($regex($3-,/[ $chr(160) ]/g) > 49) { .signal -n d $1-2 blur } 


You can also try $count() to see if it works out cheaper than any of the RE's. (example: $count($3-,0,1,2,3,4,5,6,7,8,9) or $count($3-,,,,,))

#188039 16/10/07 06:29 PM
D
deegee
deegee
D
Italic? wink
(BTW That's a tab that you have in that comparison)


Link Copied to Clipboard