From WikiChip
Difference between revisions of "mirc/wildcard"
< mirc

m (Sophist moved page mirc/wildcards to mirc/wildcard over redirect)
(12 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
{{mirc title|Wildcards}}
 
Wildcard characters are special characters that are interpreted when comparing text.
 
Wildcard characters are special characters that are interpreted when comparing text.
  
Line 6: Line 7:
 
* & - matches a whole word if used alone
 
* & - matches a whole word if used alone
  
For example the expression "t*s a *?t" matchtes the string "this is a text"
+
For example the expression "t*s a *?t" matches the string "this is a text"
  
If & is not used alone it matches the plain text '&' character. It also doesn't match $chr(32)
+
If & is not used alone it matches the plain text '&' character
 +
 
 +
'''Note''': It also doesn't match $chr(32) if used to match a whole word, see below
  
 
"test &" matches "test this" or "test that"
 
"test &" matches "test this" or "test that"
Line 18: Line 21:
 
"test th&s" matches only "test th&s"
 
"test th&s" matches only "test th&s"
  
"test " doesn't match "test $chr(32)"
+
"test &" doesn't match "test $chr(32)" (consider $chr(32) to be evaluated here)
  
Be careful when using the & wildcard character inside /if or $iif, it could be interpreted as the & bitwise operator:
+
Be careful when using the & wildcard character inside /if (and the like: $iif, /while, /elseif) it could be interpreted as the & bitwise operator:
  
 
<source lang="mIRC">if (test & iswm test this)</source>  
 
<source lang="mIRC">if (test & iswm test this)</source>  
Line 26: Line 29:
 
<source lang="mIRC">if ($(test &) iswm test this)</source>
 
<source lang="mIRC">if ($(test &) iswm test this)</source>
  
If you need to use any of these special characters as plain text in an expression where they are taken as special (not always for &), you can try to use a regular expression instead.
+
If you need to use any of these special characters as plain text in an expression where they are taken as wildcard character (that is, not always the case for &), you can try to use a {{mIRC|regex|regular expression}} instead.
 +
 
 +
The number of function/feature of the language supporting wildcard matching is simply too high to make a list, but here are the main usage:
 +
 
 +
* The iswm operator can be used with /if (and the like) to make a wildcard comparison:
 +
<source lang="mIRC">
 +
if (test* iswm $1-) { }
 +
 
 +
</source>
 +
Wildcard-matches can also be used in {{mIRC|$wildtok|token manipulation}}, {{mIRC|$hfind|hash tables}}, {{mIRC|$fline|custom windows}}, {{mIRC|on events|ON events}}, {{mIRC|$var|variables}}, etc. etc.
 +
[[Category:mIRC|wildcards]]

Revision as of 16:13, 20 October 2018

Wildcard characters are special characters that are interpreted when comparing text.

There are three meaningful wildcard characters:

  •  ? - matches a single character
  • * - matches everything (including nothing)
  • & - matches a whole word if used alone

For example the expression "t*s a *?t" matches the string "this is a text"

If & is not used alone it matches the plain text '&' character

Note: It also doesn't match $chr(32) if used to match a whole word, see below

"test &" matches "test this" or "test that"

"test &his" matches only "test &his"

"test thi&" matches only "test thi&"

"test th&s" matches only "test th&s"

"test &" doesn't match "test $chr(32)" (consider $chr(32) to be evaluated here)

Be careful when using the & wildcard character inside /if (and the like: $iif, /while, /elseif) it could be interpreted as the & bitwise operator:

if (test & iswm test this)

is not true because & is used as the bitwise operator, you can use $eval() to force mIRC to read the parameter the way you want:

if ($(test &) iswm test this)

If you need to use any of these special characters as plain text in an expression where they are taken as wildcard character (that is, not always the case for &), you can try to use a regular expression instead.

The number of function/feature of the language supporting wildcard matching is simply too high to make a list, but here are the main usage:

  • The iswm operator can be used with /if (and the like) to make a wildcard comparison:
if (test* iswm $1-) { }

Wildcard-matches can also be used in token manipulation, hash tables, custom windows, ON events, variables, etc. etc.