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

m
Line 38: Line 38:
  
 
</source>
 
</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]]

Revision as of 10:19, 21 September 2017

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" matchtes 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.