Wikia

WoWWiki

USERAPI strfindt

Talk0
101,776pages on
this wiki

Redirected from Strfindt

This page documents a user-defined function that you can copy and paste into your addon. Replace <PREFIX> with your AddOn's prefix to avoid conflicts between different versions of these functions.
User defined functions < strfindt
strfindt - by Mikk -


A thin wrapper for strfind that returns the results as a table, allowing it to be used in e.g. if() clauses while capturing subexpressions.

nBeginPos, nEndPos = <PREFIX>_strfindt(tableCaptures, strHaystack, strRegex, nStartPos, boolPlain)


Function Parameters Edit

Arguments Edit

(tableCaptures, strHaystack, strRegex, nStartPos, boolPlain)
tableCaptures 
output Table - captured subexpressions

(identical to strfind() after this point)

strHaystack 
String - the string to perform the search in
strRegex 
String - the regular expression (search pattern)
nStartPos 
Number - the position to begin the search on (nil = from the beginning)
boolPlain 
Boolean - set to true to not use regexes (which defeats the whole purpose of this wrapper)

Returns Edit

nBegin, nEnd
nBeginPos 
Number - beginning of match (1-based) or nil for no match
nEndPos
String - end position of match


Example Edit

 local results = {};
 if(<PREFIX>_strfindt(results, 
   '<b><a href="wowwiki.com">WoWWiki</a>', 
   '<a [^>]*%fhref="([^"]*)"[^>]>([^<])+</a>')
 then
   print results[2] . " lives at " . results[1];
 end

ResultEdit

 WoWWiki lives at wowwiki.com

CodeEdit

 -- Returns: nBeginPos, nEndPos.  Captured expressions go in tOut
 function <PREFIX>_strfindt(tOut, strFind, strRegex, nStart, bPlain)
   local a = { string.find(strFind, strRegex, nStart, bPlain) };
   while(getn(tOut)>0) do tremove(tOut,1); end
   for _,v in a do
     tinsert(tOut, v);
   end
   return a[1], a[2];
 end

Around Wikia's network

Random Wiki