<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://safernicotine.wiki/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Help%3ASearching%2FRegex%2FSandboxing</id>
	<title>Help:Searching/Regex/Sandboxing - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://safernicotine.wiki/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Help%3ASearching%2FRegex%2FSandboxing"/>
	<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Help:Searching/Regex/Sandboxing&amp;action=history"/>
	<updated>2026-05-07T00:40:11Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://safernicotine.wiki/mediawiki/index.php?title=Help:Searching/Regex/Sandboxing&amp;diff=40775&amp;oldid=prev</id>
		<title>imported&gt;AlanM1: /* Developing regular expressions in an ad hoc sandbox */ Grammar</title>
		<link rel="alternate" type="text/html" href="https://safernicotine.wiki/mediawiki/index.php?title=Help:Searching/Regex/Sandboxing&amp;diff=40775&amp;oldid=prev"/>
		<updated>2019-09-30T11:21:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Developing regular expressions in an ad hoc sandbox: &lt;/span&gt; Grammar&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== Developing regular expressions in &amp;#039;&amp;#039;an ad&amp;#039;&amp;#039; hoc sandbox ===&lt;br /&gt;
&lt;br /&gt;
[[Regular expressions]] are little computer programs, so it is characteristic of regex searches that they must be written while studying the target data, and tested to achieve their potential precision and thoroughness. However, only a few of these intensive searches are technically able to run at a time against the database.&amp;lt;ref&amp;gt;See [https://discuss.elastic.co/t/how-to-protect-an-es-cluster-from-searches-that-would-kill-it/25487 how searches can  kill Wikipedia&amp;#039;s CirrusSearch/ElasticSearch engine]&amp;lt;/ref&amp;gt; A sandbox minimizes your footprint, and guarantees that you will never run an untested regexp on every namespace in the wiki, even if [[H:S#User preferences|your default search]] would let you do that.&lt;br /&gt;
&lt;br /&gt;
Although a &amp;#039;&amp;#039;normal&amp;#039;&amp;#039; search targeting the entire wiki will run quickly, a &amp;#039;&amp;#039;regexp&amp;#039;&amp;#039; search should target as few pages as possible by using filters in order to run quickly. A filter is part or whole of a &amp;#039;&amp;#039;database query&amp;#039;&amp;#039;. Filters include:&lt;br /&gt;
* word(s) or phrase&lt;br /&gt;
* intitle:&lt;br /&gt;
* incategory:&lt;br /&gt;
* hastemplate:&lt;br /&gt;
* prefix: (always at the end)&lt;br /&gt;
* linksto:&lt;br /&gt;
* &amp;#039;&amp;#039;namespace:&amp;#039;&amp;#039; (always at the beginning)&lt;br /&gt;
* insource:&amp;quot;word1 word2&amp;quot;&lt;br /&gt;
* insource:word&lt;br /&gt;
&lt;br /&gt;
Order is not important because the search is optimized by the software before it is run.&lt;br /&gt;
&lt;br /&gt;
To target just one page while experimenting with or developing a regex search, target a fullpagename. From the search box use the filter &amp;lt;kbd&amp;gt;prefix:&amp;#039;&amp;#039;fullpagename&amp;#039;&amp;#039;&amp;lt;/kbd&amp;gt;. From the edit box (of any section of the page with the target data), you can always just write &amp;lt;kbd&amp;gt;{{nowrap|prefix:{&amp;lt;nowiki/&amp;gt;{FULLPAGENAME}}}}&amp;lt;/kbd&amp;gt; and it will &amp;quot;expand&amp;quot; for you to the fullpagename. Although you can edit a history page, technically a &amp;quot;history page&amp;quot; is not a page (in the database), and so {&amp;lt;nowiki/&amp;gt;{FULLPAGENAME}} &amp;#039;&amp;#039;there&amp;#039;&amp;#039; will point to the database version (not its own rendering). For the same reason, you cannot search for the wikitext on a page that is not already saved (to the database), although you can certainly change the search parameters again and again with no need to save &amp;#039;&amp;#039;them&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Fullpagename is namespace:pagename&amp;#039;&amp;#039;.  Knowing this you can adjust your Prefix parameter.  Although &amp;#039;&amp;#039;prefix&amp;#039;&amp;#039; can filter down to one page, it can filter up to a namespace, and it also accepts the beginning letter(s) of set of pagenames if you want to reduce the namespace search domain.&lt;br /&gt;
&lt;br /&gt;
Regex sandboxing uses an &amp;#039;&amp;#039;ad hoc&amp;#039;&amp;#039; sandbox made by editing any page containing the target data, and using it as a &amp;quot;sandbox&amp;quot; (not editing it to save it). It then develops by using adding a search link that includes insource:/&amp;#039;&amp;#039;regexp&amp;#039;&amp;#039;/, with the filter &amp;#039;&amp;#039;prefix:&amp;amp;#123;{FULLPAGENAME}}&amp;#039;&amp;#039; alongside.&lt;br /&gt;
&lt;br /&gt;
Use of a sandbox enables the smallest possible footprint by using filters to limit the search domain. Once your regexp pattern is honed, you increase the search domain. A regex search is best run with filters, not alone even if it is a polished rexexp.&lt;br /&gt;
&lt;br /&gt;
==== Sandboxing procedure ====&lt;br /&gt;
&lt;br /&gt;
Rather than use the search box, where entering an equals sign and a pipe character, and &amp;quot;quotes around phrases&amp;quot; is a straightforward matter, it is still easiest to use a regex-based search-link template {{mdash}} {{tl|regex}} or {{tl|tlusage}} {{mdash}} on the page with sample data, because then you can focus on the target data there and on writing the regexp pattern. It is easier, that is, if you already understand how templates &amp;quot;escape&amp;quot; the pipe character and the equals sign. See [[Help:Template#Parameters]] for other important details.&lt;br /&gt;
&lt;br /&gt;
The procedure here is an iterative, read-evaluate-modify cycle. Regex development requires that you study the target data while writing and rewriting its pattern.&lt;br /&gt;
# Navigate to a page with the wikitext instances you are interested in mining. Or create one yourself, and save it to the database so the query will find it.  &lt;br /&gt;
# Open the wikitext, and enter a {{tl|regex}} or {{tl|tlusage}}.&lt;br /&gt;
# &amp;#039;&amp;#039;Show preview&amp;#039;&amp;#039;, and activate the search link. On the search results page, note the bold text in each match.&lt;br /&gt;
# Go back in your browser. Modify the regexp, and cycle until done. (Or don&amp;#039;t go back, you may want to modify the query at the search box.)&lt;br /&gt;
# Expand the search domain, and test the accuracy of &amp;#039;&amp;#039;those&amp;#039;&amp;#039; results.  You can trim or expand the number of the results using &amp;#039;&amp;#039;prefix:&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Caveat emptor&amp;#039;&amp;#039;: if you change the &amp;#039;&amp;#039;target&amp;#039;&amp;#039; for an &amp;#039;&amp;#039;immediate&amp;#039;&amp;#039; retesting, you&amp;#039;ll have to save and [[WP:Purge|purge]], but not if you just change the regexp.&lt;br /&gt;
&amp;lt;section begin=Examples /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Examples ====&lt;br /&gt;
&lt;br /&gt;
As an &amp;#039;&amp;#039;ad hoc&amp;#039;&amp;#039; sandbox, you can show the wikitext of a section like this, (already saved in the database), modify some of the patterns in the regex-search-link template calls on this page, do a Show Preview, and see what matches when you click on the newly formed regex search-link, all quite safely, and without changing a thing in the database.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--If you change the below, sample, targets, you&amp;#039;ll have to save the page&lt;br /&gt;
to get them into the database to find them in the query. The first batch here&lt;br /&gt;
is concentrated so that it shows up to six or seven hits on the results page.&lt;br /&gt;
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv --&amp;gt;&lt;br /&gt;
The template calls that produce &amp;quot;{{val|1|ul=ft/s|fmt =   commas}},&lt;br /&gt;
{{val|2|u=ft2}},&lt;br /&gt;
{{val|3|u=m/s| fmt =commas }},&lt;br /&gt;
{{val|4|u=m*s-2}},&lt;br /&gt;
{{val|5|u=ft.s-2}},&lt;br /&gt;
{{val|6|u=C/J}}, and&lt;br /&gt;
{{val|7|ul=J/C}}&amp;quot;&lt;br /&gt;
appear in the wikitext of this section like this:&lt;br /&gt;
# &amp;lt;kbd&amp;gt;&amp;lt;nowiki&amp;gt;{{val|1|ul=ft/s|fmt =   commas}}&amp;lt;/nowiki&amp;gt;&amp;lt;/kbd&amp;gt; &lt;br /&gt;
# &amp;lt;kbd&amp;gt;&amp;lt;nowiki&amp;gt;{{val|2|u=ft2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/kbd&amp;gt; &lt;br /&gt;
# &amp;lt;kbd&amp;gt;&amp;lt;nowiki&amp;gt;{{val|3|u=m/s| fmt =commas }}&amp;lt;/nowiki&amp;gt;&amp;lt;/kbd&amp;gt; &lt;br /&gt;
# &amp;lt;kbd&amp;gt;&amp;lt;nowiki&amp;gt;{{val|4|u=m*s-2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/kbd&amp;gt; &lt;br /&gt;
# &amp;lt;kbd&amp;gt;&amp;lt;nowiki&amp;gt;{{val|5|u=ft.s-2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/kbd&amp;gt;&lt;br /&gt;
# &amp;lt;kbd&amp;gt;&amp;lt;nowiki&amp;gt;{{val|6|u=C/J}}&amp;lt;/nowiki&amp;gt;&amp;lt;/kbd&amp;gt; &lt;br /&gt;
# &amp;lt;kbd&amp;gt;&amp;lt;nowiki&amp;gt;{{val|7|ul=J/C}}&amp;lt;/nowiki&amp;gt;&amp;lt;/kbd&amp;gt;&lt;br /&gt;
&amp;lt;!--^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;br /&gt;
If you change the above targets, you&amp;#039;ll have to save the page&lt;br /&gt;
to get them into the database to find them in the query.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note how the above targets are |numbered|, then click on the links below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; width=&amp;quot;200px&amp;quot; | Query&lt;br /&gt;
! [[Template:Internal search templates common doc#Search links|Search link]]&lt;br /&gt;
! Answer&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Q1&amp;#039;&amp;#039;&amp;#039; Using {{tl|search link}}, does this page &amp;#039;&amp;#039;employ&amp;#039;&amp;#039; template Val ?&lt;br /&gt;
|{{#invoke:DemoTemplate|sl|hastemplate: Val}} &lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;A.&amp;#039;&amp;#039;&amp;#039; No, because this pagename is in Help not Article space.(Search link default). &amp;#039;&amp;#039;&amp;#039;1300&amp;#039;&amp;#039;&amp;#039; search results. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Q2&amp;#039;&amp;#039;&amp;#039; Using {{tlf|search link}} &amp;#039;&amp;#039;responsibly&amp;#039;&amp;#039;, does this page use Val&amp;#039;s fmt parameter?&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{sl|insource:/\{[Vv]al\{{!}}[^}]*fmt/ prefix:{{FULLPAGENAME}}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; &lt;br /&gt;
{{sl|insource:/\{[Vv]al\{{!}}[^}]*fmt/ prefix:{{FULLPAGENAME}}}} &lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;A2.1&amp;#039;&amp;#039;&amp;#039;. Look for 1 and 3 in the search results in bold text. (Adds an appropriate filter.)&lt;br /&gt;
|-&lt;br /&gt;
|Using {{tl|regex}} instead...&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{slre|\{[Vv]al\{{!}}[^}]*fmt}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr;&lt;br /&gt;
{{slre|\{[Vv]al\{{!}}[^}]*fmt}}&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;A2.2&amp;#039;&amp;#039;&amp;#039; Less typing than {{tlf|search link}}.&lt;br /&gt;
|-&lt;br /&gt;
|Using {{tl|template usage}} instead...&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{tlre|Val|pattern=fmt}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; &lt;br /&gt;
{{tlre|Val|pattern = fmt}}&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;A2.3&amp;#039;&amp;#039;&amp;#039; Easiest for templates.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Q3&amp;#039;&amp;#039;&amp;#039;. Who uses &amp;lt;kbd&amp;gt;u=ft&amp;lt;/kbd&amp;gt; OR &amp;lt;kbd&amp;gt;ul=ft&amp;lt;/kbd&amp;gt;? (one-letter differs)&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{regex|ul?=ft}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr;&lt;br /&gt;
{{slre|ul?{{=}}ft}}&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;. Look for 1, 2, and 5 in bold text. &lt;br /&gt;
|-&lt;br /&gt;
|Using {{tl|template usage}}...&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{tlre|val|pattern = ul?=ft}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr;&lt;br /&gt;
{{tlre|val|pattern = ul?=ft}}&lt;br /&gt;
|Finds same pattern, but only &amp;#039;&amp;#039;inside&amp;#039;&amp;#039; a Val template.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Q4&amp;#039;&amp;#039;&amp;#039;. AND of these, who also uses fmt=commas after that?&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{slre|ul?=ft.*commas}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr;&lt;br /&gt;
{{slre|ul?=ft.*commas}}&lt;br /&gt;
|A. No context shown, but article title is shown. A half a Bug?&lt;br /&gt;
|-&lt;br /&gt;
|Who has one space before the word &amp;quot;commas&amp;quot;?&lt;br /&gt;
|{{#invoke:DemoTemplate|slre|. commas}}&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;. 1 but not 2.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Q5&amp;#039;&amp;#039;&amp;#039;. Who uses either u or ul with &amp;quot;ft&amp;quot; OR uses &amp;quot;fmt=commas&amp;quot;. &lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{slre|(ul? *= *ft{{!}}fmt *= *commas)}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;amp;rarr; {{slre|(ul? *= *ft{{!}}fmt *= *commas)}}&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;. 1, 2, 3, and 5. (The pattern matches all possible spacing.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Q6&amp;#039;&amp;#039;&amp;#039;. Who uses &amp;#039;&amp;#039;ft&amp;#039;&amp;#039; or &amp;#039;&amp;#039;m&amp;#039;&amp;#039;, in {{para|u}} or {{para|ul}}?&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{slre|ul? *{{=}} *(ft{{!}}m)}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;amp;rarr; {{slre|ul? *{{=}} *(ft{{!}}m)}}&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;. 1, 2, 3, 4, and 5.  &lt;br /&gt;
Used {&amp;lt;nowiki/&amp;gt;{!}} for the &amp;#039;&amp;#039;alternation&amp;#039;&amp;#039; metacharacter. Used {{tl|1==}}. (Could have used named &amp;lt;code&amp;gt;1 = &amp;lt;/code&amp;gt; or nicely named &amp;lt;code&amp;gt;pattern = &amp;lt;/code&amp;gt;.)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Q7&amp;#039;&amp;#039;&amp;#039;. Who uses . or * in the unit code?&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{tlre|val|pattern = u *= *(\.{{!}}\*)/}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;amp;rarr; {{tlre|val|pattern = u *= *(\.{{!}}\*)/}}&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;. 4 and 5.&lt;br /&gt;
|-&lt;br /&gt;
|Who uses a pipe?&lt;br /&gt;
|{{#invoke:DemoTemplate|regex|\{{!}}}}&lt;br /&gt;
|All of them&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Q8&amp;#039;&amp;#039;&amp;#039;. Who uses / or - &amp;#039;&amp;#039;within&amp;#039;&amp;#039; the {{para|u}} or {{para|ul}} paramter?&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{tlre|val|ul? *= *[^{{!}}}]+(\/{{!}}-)}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &lt;br /&gt;
&amp;amp;rarr; {{tlre|val|pattern = ul? *= *[^{{!}}}]+(\/{{!}}-)}}&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;. 1,3,4,5,6 and 7.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;Q9&amp;#039;&amp;#039;&amp;#039;. Where is Val used in the template namespace for numbers only, (no &amp;lt;kbd&amp;gt;u&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;ul&amp;lt;/kbd&amp;gt;, &amp;lt;kbd&amp;gt;up&amp;lt;/kbd&amp;gt;, or &amp;lt;kbd&amp;gt;upl&amp;lt;/kbd&amp;gt; parameters).&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{tlre|val|pattern = ~(u[lp].)|prefix = 10}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;amp;rarr; {{tlre|val|pattern = ~(u[lp].)|prefix = 10 }}&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;. In the 30 or so templates listed.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Q10&amp;#039;&amp;#039;&amp;#039;. Which articles use {{tl|Convert}}&amp;#039;s &amp;lt;kbd&amp;gt;and(-)&amp;lt;/kbd&amp;gt; option?&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{tlre|convert|pattern=and\(-\)| prefix=0}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;amp;rarr; {{tlre|convert|pattern = and\(-\) | prefix = 0}}&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;Coast Range Arc&amp;#039;&amp;#039; and &amp;#039;&amp;#039;Skipjack shad&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
In &amp;#039;&amp;#039;&amp;#039;Q2&amp;#039;&amp;#039;&amp;#039;, notice how the MediaWiki software ignores the spaces &amp;#039;&amp;#039;around&amp;#039;&amp;#039; parameters, but how in &amp;#039;&amp;#039;&amp;#039;Q4&amp;#039;&amp;#039;&amp;#039; the same MediaWiki software processes the spaces &amp;#039;&amp;#039;inside&amp;#039;&amp;#039; parameters. Q2 might have been solved with a plain &amp;lt;kbd&amp;gt;insource:val fmt&amp;lt;/kbd&amp;gt; search because &amp;quot;fmt&amp;quot; and &amp;quot;val&amp;quot; are whole words, and fmt is rarely seen apart from inside Val.  How about &amp;lt;kbd&amp;gt;hastemplate:val insource:fmt&amp;lt;/kbd&amp;gt;?&lt;br /&gt;
&amp;lt;section end=Examples /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&lt;/div&gt;</summary>
		<author><name>imported&gt;AlanM1</name></author>
	</entry>
</feed>