Template:Strfind short

From Slicer Wiki
Revision as of 06:07, 25 August 2011 by JChris.FillionR (talk | contribs) (Created page with '<noinclude><!-- -============================================================= - Strfind_short - Find a string within another string fast -=======================================…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Home < Template:Strfind short


Source: http://en.wikipedia.org/wiki/Template:Strfind_short


The Template:Strfind_short finds the location, in parameter {1} with length lenstr=15 (up to 99), of the string {2} with length {3}, using a simple, quick method. If the string is not found, the result is zero (0), indicating no match. The parameter lenstr can be shorter than the actual 1st string, to stop the search earlier (and faster). The template was designed to use only 5 levels of expansion depth, rather than 18 or more levels as in other string-searching templates.

Usage:  {{strfind short|abcdef|bcd|3}} Template:In5Template:Str find
{{strfind short|123456789.|45|2}} → 4
{{strfind short|x+2.437-6|2.43|4}} → 3
{{strfind short|:***abcd**|*ab| {{strlen_short|*ab}} }} → Expression error: Unrecognized word "strong".

If the length of the substring {2} is not known, or changes often, then the extra template {strlen_quick} can be used as: {{strlen_quick|{{{2}}} }}, to determine the length of string 2, quickly.


The following are examples:

  • {{strfind short|abcdef|bcd|3}} Template:In5 → 2
  • {{strfind short|Fast Forward (film)|(|1}} Template:In5 → 14
  • {{strfind short|Fast Forward Longer (film)|(|1}} → 0
  • {{strfind short|Fast Forward Longer (film)|(|1|lenstr=26}} → 21
  • {{strfind short|A Funny Thing Happened on the Way to the Forum (film)|(|1|lenstr=53}} → 48

Performance impact

The operation of Template:Strfind_short was designed to run 4x times faster than other string-search templates; however, it typically runs 20x times faster (or shorter) for strings up to 15 characters long. The post-expand include size averages about 300 bytes (rather than 6,000 bytes for other string-search templates). It can be used over 5,000 times per page (compared to only 350 times for other search templates). For strings over 50 long, it will use more resources, due to processing strings larger than other templates had allowed.

See also

  • {{Str find}} - searches strings, but with expansion depth of 18 or more