"आकृति:Strfind short" के अवतरणसभमे अन्तर

rewrote to handle multiple matches per string
added new parameter {lenstr} for search 3x faster, stopping at length of strings. Set default search up to 15 long but allows lenstr=99.
पङ्क्त्ति ६:
--></noinclude>{{#expr: 0{{
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+1}}|-{{{1}}} }}^|-{{{2|{{{1}}}}}}^|1+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+2}}|-{{{1}}} }}^|{{padleft:|2|-{{{1}}} }}{{{2}}}^|2+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+3}}|-{{{1}}} }}^|{{padleft:|3|-{{{1}}} }}{{{2}}}^|3+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+4}}|-{{{1}}} }}^|{{padleft:|4|-{{{1}}} }}{{{2}}}^|4+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+5}}|-{{{1}}} }}^|{{padleft:|5|-{{{1}}} }}{{{2}}}^|5+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+6}}|-{{{1}}} }}^|{{padleft:|6|-{{{1}}} }}{{{2}}}^|6+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+7}}|-{{{1}}} }}^|{{padleft:|7|-{{{1}}} }}{{{2}}}^|7+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+8}}|-{{{1}}} }}^|{{padleft:|8|-{{{1}}} }}{{{2}}}^|8+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+9}}|-{{{1}}} }}^|{{padleft:|9|-{{{1}}} }}{{{2}}}^|9+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+1510}}|-{{{1}}} }}^|{{padleft:|1510|-{{{1}}} }}{{{2}}}^|1510+0*}}{{
 
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+1011}}|-{{{1}}} }}^|{{padleft:|1011|-{{{1}}} }}{{{2}}}^|1011+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+1112}}|-{{{1}}} }}^|{{padleft:|1112|-{{{1}}} }}{{{2}}}^|1112+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+1213}}|-{{{1}}} }}^|{{padleft:|1213|-{{{1}}} }}{{{2}}}^|1213+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+1314}}|-{{{1}}} }}^|{{padleft:|1314|-{{{1}}} }}{{{2}}}^|1314+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3|7}}}+1415}}|-{{{1}}} }}^|{{padleft:|1415|-{{{1}}} }}{{{2}}}^|1415+0*}}{{<!--
----------------------------- Check to skip lengths > 15
#ifeq:{{padleft:|{{#expr: {{{3}}}+15}}|-{{{1}}} }}^|{{padleft:|15|-{{{1}}} }}{{{2}}}^|15+0*}}{{
-->{{#ifexpr: {{{lenstr|15}}}+{{{3}}}-1 > 15 |{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+16}}|-{{{1}}} }}^|{{padleft:|16|-{{{1}}} }}{{{2}}}^|16+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+17}}|-{{{1}}} }}^|{{padleft:|17|-{{{1}}} }}{{{2}}}^|17+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+18}}|-{{{1}}} }}^|{{padleft:|18|-{{{1}}} }}{{{2}}}^|18+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+19}}|-{{{1}}} }}^|{{padleft:|19|-{{{1}}} }}{{{2}}}^|19+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+2520}}|-{{{1}}} }}^|{{padleft:|2520|-{{{1}}} }}{{{2}}}^|2520+0*}}{{
 
#ifeq:{{padleft:|{{#expr: {{{3}}}+2021}}|-{{{1}}} }}^|{{padleft:|2021|-{{{1}}} }}{{{2}}}^|2021+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+2122}}|-{{{1}}} }}^|{{padleft:|2122|-{{{1}}} }}{{{2}}}^|2122+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+2223}}|-{{{1}}} }}^|{{padleft:|2223|-{{{1}}} }}{{{2}}}^|2223+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+2324}}|-{{{1}}} }}^|{{padleft:|2324|-{{{1}}} }}{{{2}}}^|2324+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+2425}}|-{{{1}}} }}^|{{padleft:|2425|-{{{1}}} }}{{{2}}}^|2425+0*}}{{ }}<!--
---------------------- Check to skip lengths > 25
#ifeq:{{padleft:|{{#expr: {{{3}}}+25}}|-{{{1}}} }}^|{{padleft:|25|-{{{1}}} }}{{{2}}}^|25+0*}}{{
-->{{#ifexpr: {{{lenstr|15}}}+{{{3}}}-1 > 25 |{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+26}}|-{{{1}}} }}^|{{padleft:|26|-{{{1}}} }}{{{2}}}^|26+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+27}}|-{{{1}}} }}^|{{padleft:|27|-{{{1}}} }}{{{2}}}^|27+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+28}}|-{{{1}}} }}^|{{padleft:|28|-{{{1}}} }}{{{2}}}^|28+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+29}}|-{{{1}}} }}^|{{padleft:|29|-{{{1}}} }}{{{2}}}^|29+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+3530}}|-{{{1}}} }}^|{{padleft:|3530|-{{{1}}} }}{{{2}}}^|3530+0*}}{{
 
#ifeq:{{padleft:|{{#expr: {{{3}}}+3031}}|-{{{1}}} }}^|{{padleft:|3031|-{{{1}}} }}{{{2}}}^|3031+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+3132}}|-{{{1}}} }}^|{{padleft:|3132|-{{{1}}} }}{{{2}}}^|3132+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+3233}}|-{{{1}}} }}^|{{padleft:|3233|-{{{1}}} }}{{{2}}}^|3233+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+3334}}|-{{{1}}} }}^|{{padleft:|3334|-{{{1}}} }}{{{2}}}^|3334+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+3435}}|-{{{1}}} }}^|{{padleft:|3435|-{{{1}}} }}{{{2}}}^|3435+0*}}{{ }}<!--
---------------------- Check to skip lengths > 35
#ifeq:{{padleft:|{{#expr: {{{3}}}+35}}|-{{{1}}} }}^|{{padleft:|35|-{{{1}}} }}{{{2}}}^|35+0*}}{{
-->{{#ifexpr: {{{lenstr|15}}}+{{{3}}}-1 > 35 |{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+36}}|-{{{1}}} }}^|{{padleft:|36|-{{{1}}} }}{{{2}}}^|36+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+37}}|-{{{1}}} }}^|{{padleft:|37|-{{{1}}} }}{{{2}}}^|37+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+38}}|-{{{1}}} }}^|{{padleft:|38|-{{{1}}} }}{{{2}}}^|38+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+39}}|-{{{1}}} }}^|{{padleft:|39|-{{{1}}} }}{{{2}}}^|39+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+4540}}|-{{{1}}} }}^|{{padleft:|4540|-{{{1}}} }}{{{2}}}^|4540+0*}}{{
 
#ifeq:{{padleft:|{{#expr: {{{3}}}+4041}}|-{{{1}}} }}^|{{padleft:|4041|-{{{1}}} }}{{{2}}}^|4041+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+4142}}|-{{{1}}} }}^|{{padleft:|4142|-{{{1}}} }}{{{2}}}^|4142+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+4243}}|-{{{1}}} }}^|{{padleft:|4243|-{{{1}}} }}{{{2}}}^|4243+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+4344}}|-{{{1}}} }}^|{{padleft:|4344|-{{{1}}} }}{{{2}}}^|4344+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+4445}}|-{{{1}}} }}^|{{padleft:|4445|-{{{1}}} }}{{{2}}}^|4445+0*}}{{ }}<!--
---------------------- Check to skip lengths > 45
#ifeq:{{padleft:|{{#expr: {{{3}}}+45}}|-{{{1}}} }}^|{{padleft:|45|-{{{1}}} }}{{{2}}}^|45+0*}}{{
-->{{#ifexpr: {{{lenstr|15}}}+{{{3}}}-1 > 45 |{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+46}}|-{{{1}}} }}^|{{padleft:|46|-{{{1}}} }}{{{2}}}^|46+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+47}}|-{{{1}}} }}^|{{padleft:|47|-{{{1}}} }}{{{2}}}^|47+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+48}}|-{{{1}}} }}^|{{padleft:|48|-{{{1}}} }}{{{2}}}^|48+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+49}}|-{{{1}}} }}^|{{padleft:|49|-{{{1}}} }}{{{2}}}^|49+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+50}}|-{{{1}}} }}^|{{padleft:|50|-{{{1}}} }}{{{2}}}^|50+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+51}}|-{{{1}}} }}^|{{padleft:|51|-{{{1}}} }}{{{2}}}^|51+0*}}{{
}}0}}<noinclude><!--endexpr
#ifeq:{{padleft:|{{#expr: {{{3}}}+52}}|-{{{1}}} }}^|{{padleft:|52|-{{{1}}} }}{{{2}}}^|52+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+53}}|-{{{1}}} }}^|{{padleft:|53|-{{{1}}} }}{{{2}}}^|53+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+54}}|-{{{1}}} }}^|{{padleft:|54|-{{{1}}} }}{{{2}}}^|54+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+55}}|-{{{1}}} }}^|{{padleft:|55|-{{{1}}} }}{{{2}}}^|55+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+56}}|-{{{1}}} }}^|{{padleft:|56|-{{{1}}} }}{{{2}}}^|56+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+57}}|-{{{1}}} }}^|{{padleft:|57|-{{{1}}} }}{{{2}}}^|57+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+58}}|-{{{1}}} }}^|{{padleft:|58|-{{{1}}} }}{{{2}}}^|58+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+59}}|-{{{1}}} }}^|{{padleft:|59|-{{{1}}} }}{{{2}}}^|59+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+60}}|-{{{1}}} }}^|{{padleft:|60|-{{{1}}} }}{{{2}}}^|60+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+61}}|-{{{1}}} }}^|{{padleft:|61|-{{{1}}} }}{{{2}}}^|61+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+62}}|-{{{1}}} }}^|{{padleft:|62|-{{{1}}} }}{{{2}}}^|62+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+63}}|-{{{1}}} }}^|{{padleft:|63|-{{{1}}} }}{{{2}}}^|63+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+64}}|-{{{1}}} }}^|{{padleft:|64|-{{{1}}} }}{{{2}}}^|64+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+65}}|-{{{1}}} }}^|{{padleft:|65|-{{{1}}} }}{{{2}}}^|65+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+66}}|-{{{1}}} }}^|{{padleft:|66|-{{{1}}} }}{{{2}}}^|66+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+67}}|-{{{1}}} }}^|{{padleft:|67|-{{{1}}} }}{{{2}}}^|67+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+68}}|-{{{1}}} }}^|{{padleft:|68|-{{{1}}} }}{{{2}}}^|68+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+69}}|-{{{1}}} }}^|{{padleft:|69|-{{{1}}} }}{{{2}}}^|69+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+70}}|-{{{1}}} }}^|{{padleft:|70|-{{{1}}} }}{{{2}}}^|70+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+71}}|-{{{1}}} }}^|{{padleft:|71|-{{{1}}} }}{{{2}}}^|71+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+72}}|-{{{1}}} }}^|{{padleft:|72|-{{{1}}} }}{{{2}}}^|72+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+73}}|-{{{1}}} }}^|{{padleft:|73|-{{{1}}} }}{{{2}}}^|73+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+74}}|-{{{1}}} }}^|{{padleft:|74|-{{{1}}} }}{{{2}}}^|74+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+75}}|-{{{1}}} }}^|{{padleft:|75|-{{{1}}} }}{{{2}}}^|75+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+76}}|-{{{1}}} }}^|{{padleft:|76|-{{{1}}} }}{{{2}}}^|76+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+77}}|-{{{1}}} }}^|{{padleft:|77|-{{{1}}} }}{{{2}}}^|77+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+78}}|-{{{1}}} }}^|{{padleft:|78|-{{{1}}} }}{{{2}}}^|78+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+79}}|-{{{1}}} }}^|{{padleft:|79|-{{{1}}} }}{{{2}}}^|79+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+80}}|-{{{1}}} }}^|{{padleft:|80|-{{{1}}} }}{{{2}}}^|80+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+81}}|-{{{1}}} }}^|{{padleft:|81|-{{{1}}} }}{{{2}}}^|81+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+82}}|-{{{1}}} }}^|{{padleft:|82|-{{{1}}} }}{{{2}}}^|82+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+83}}|-{{{1}}} }}^|{{padleft:|83|-{{{1}}} }}{{{2}}}^|83+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+84}}|-{{{1}}} }}^|{{padleft:|84|-{{{1}}} }}{{{2}}}^|84+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+85}}|-{{{1}}} }}^|{{padleft:|85|-{{{1}}} }}{{{2}}}^|85+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+86}}|-{{{1}}} }}^|{{padleft:|86|-{{{1}}} }}{{{2}}}^|86+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+87}}|-{{{1}}} }}^|{{padleft:|87|-{{{1}}} }}{{{2}}}^|87+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+88}}|-{{{1}}} }}^|{{padleft:|88|-{{{1}}} }}{{{2}}}^|88+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+89}}|-{{{1}}} }}^|{{padleft:|89|-{{{1}}} }}{{{2}}}^|89+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+90}}|-{{{1}}} }}^|{{padleft:|90|-{{{1}}} }}{{{2}}}^|90+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+91}}|-{{{1}}} }}^|{{padleft:|91|-{{{1}}} }}{{{2}}}^|91+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+92}}|-{{{1}}} }}^|{{padleft:|92|-{{{1}}} }}{{{2}}}^|92+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+93}}|-{{{1}}} }}^|{{padleft:|93|-{{{1}}} }}{{{2}}}^|93+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+94}}|-{{{1}}} }}^|{{padleft:|94|-{{{1}}} }}{{{2}}}^|94+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+95}}|-{{{1}}} }}^|{{padleft:|95|-{{{1}}} }}{{{2}}}^|95+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+96}}|-{{{1}}} }}^|{{padleft:|96|-{{{1}}} }}{{{2}}}^|96+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+97}}|-{{{1}}} }}^|{{padleft:|97|-{{{1}}} }}{{{2}}}^|97+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+98}}|-{{{1}}} }}^|{{padleft:|98|-{{{1}}} }}{{{2}}}^|98+0*}}{{
#ifeq:{{padleft:|{{#expr: {{{3}}}+99}}|-{{{1}}} }}^|{{padleft:|99|-{{{1}}} }}{{{2}}}^|99+0*
}}}}0}}<noinclude><!--endif lenstr > 45, with "0" & endexpr
--------------------------------------------------------------
--NOTES
Line ६५ ⟶ ११८:
-- be omitted & not sent in a formatted Internet page. ]
--
-- NOTE A1: This template searches inside string {1}, forup theto
-- length {lenstr}, to match string {2} of length {3}, as an embedded substring,
-- as an embedded substring. In various groups, limited
-- comparing with the string truncated to '{3}+n' long
-- against stringby {1lenstr}, truncatedit tocompares nstring withtruncated '{23}+n' appended.long
-- comparing with theagainst string {1} truncated to '{3}+n' longwith string {2}
-- appended in the comparison.
--
-- NOTE N2: This template was designed to use minimal levels
Line ७४ ⟶ १२९:
-- in very large templates. By comparison, {str_find}
-- was using over 5 levels of 40 total, during 2010.
--
-- NOTE S3: The speed of search depends on the length parameter
-- {lenstr}, where lenstr > 15 will start #2 of 4 phases
-- of comparisons, because 43% of strings are < 16 long:
-- lenstr > 25 will search the 16% of strings over 25 long,
-- lenstr > 35 will search the 4% of strings over 35,
-- lenstr > 45 will search 1% of strings over 45 long.
-- The exact check of length is {{{lenstr}}}+{{{3}}}-1 > n
-- to also stop if the search string is too long to match.
--
--------------------------------------------------------------
Line ८० ⟶ १४४:
--28Dec10 Put NOTES comments to explain template coding.
--28Dec10 Put HISTORY comments to log major changes (not typos).
--29Jan11 New {lenstr} for search 3x faster, stopping at length.
--29Jan11 Set default search up to 15 long but allow lenstr=99.
--
-->
प्राप्ति स्थल "https://mai.wikipedia.org/wiki/आकृति:Strfind_short"