<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AStr_find_word%2Fdoc</id>
	<title>Module:Str find word/doc - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AStr_find_word%2Fdoc"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Str_find_word/doc&amp;action=history"/>
	<updated>2026-06-07T05:54:53Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Str_find_word/doc&amp;diff=147051&amp;oldid=prev</id>
		<title>imported&gt;DePiep: /* True, False rephrase options {{para|yes, no}} */</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Str_find_word/doc&amp;diff=147051&amp;oldid=prev"/>
		<updated>2022-12-11T13:17:11Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;True, False rephrase options {{para|yes, no}}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;:TOC: [[#code]] ({{edit|Module:Str find word}})&lt;br /&gt;
{{Module:Str find word/links/doc}}&lt;br /&gt;
{{Module rating|pre-alpha}}&lt;br /&gt;
{{Lua|Module:Yesno|Module:TableTools|Module:String}}&lt;br /&gt;
This module looks for a word being present in a comma-separated list of words. It then returns a {{code|True}} or {{code|False}} value.&lt;br /&gt;
By default, the True-value returned is the found word itself; the False-value is a blank string. Implements {{tl|Str find word}}.&lt;br /&gt;
&lt;br /&gt;
For example, in the source string &amp;#039;{{mono|1=foo, bar}}&amp;#039; the word &amp;#039;{{mono|1=bar}}&amp;#039; appears, but the word &amp;#039;{{mono|1=november}}&amp;#039; does not.&lt;br /&gt;
:True: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Str find word|main |source=foo, bar|word=bar}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;gt;{{#invoke:Str find word|main |source=foo, bar|word=bar}}&amp;lt;&lt;br /&gt;
:False: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Str find word|main |source=alpha, beta, gamma|word=november}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;gt;{{#invoke:Str find word|main |source=alpha, beta, gamma|word=november}}&amp;lt;&lt;br /&gt;
&lt;br /&gt;
Complete words: the complete word is &amp;#039;{{mono|1=foobar}}&amp;#039; ... example needed ...&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Multiple word check&amp;#039;&amp;#039;: The search can be extended to check for multiple words being present.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;AND&amp;#039;&amp;#039;-list of words, all words must be present:&lt;br /&gt;
:True: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Str find word|main |source=alpha, beta, gamma|andwords=beta, alpha}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;gt;{{#invoke:Str find word|main |source=alpha, beta, gamma|andwords=beta, alpha}}&amp;lt;&lt;br /&gt;
:False: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Str find word|main |source=alpha, beta, gamma|andwords=beta, omega}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;gt;{{#invoke:Str find word|main |source=alpha, beta, gamma|andwords=beta, omega}}&amp;lt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;OR&amp;#039;&amp;#039;-list of words, at least one off the words must be present:&lt;br /&gt;
:True: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Str find word|main |source=alpha, beta, gamma|orwords=beta, alpha}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;gt;{{#invoke:Str find word|main |source=alpha, beta, gamma|orwords=beta, alpha}}&amp;lt;&lt;br /&gt;
:False: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Str find word|main |source=alpha, beta, gamma|orwords=beta, omega}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; &amp;amp;rarr; &amp;gt;{{#invoke:Str find word|main |source=alpha, beta, gamma|orwords=beta, omega}}&amp;lt;&lt;br /&gt;
&lt;br /&gt;
The module is aimed at template code usage. &amp;lt;small&amp;gt;(The editor does not have to apply Lua patterns like {{code|1=[%a%d]*}})&amp;lt;/small&amp;gt;.&lt;br /&gt;
== Usage ==&lt;br /&gt;
:{{red|This documentation is not up to date}}. See template {{tl|Str find word}}.&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
:All parameters (synonyms)&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Str find word&lt;br /&gt;
|string = &lt;br /&gt;
|word   =&lt;br /&gt;
|orwords  = &lt;br /&gt;
|case=&lt;br /&gt;
|yes =&lt;br /&gt;
|no  =&lt;br /&gt;
|explain =&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Str find word&lt;br /&gt;
|s   = &lt;br /&gt;
|w   =&lt;br /&gt;
|orw =&lt;br /&gt;
|case=&lt;br /&gt;
|yes =&lt;br /&gt;
|no  =&lt;br /&gt;
|explain =&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Str find word&lt;br /&gt;
|s= source= &lt;br /&gt;
|word= andwords= andw=&lt;br /&gt;
|orwords= orw=&lt;br /&gt;
|case=&lt;br /&gt;
|yes=&lt;br /&gt;
|no=&lt;br /&gt;
|explain=&lt;br /&gt;
&amp;lt;!-- |sep=todo --&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;{{Str find word |s= |w= |andw= |orw= |case= |yes= |no= |explain=}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Basic: source, word===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Str find word&lt;br /&gt;
|source =&lt;br /&gt;
|word   =&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:When the &amp;#039;&amp;#039;word&amp;#039;&amp;#039; is found in the &amp;#039;&amp;#039;source&amp;#039;&amp;#039; (True), the function returns the &amp;#039;&amp;#039;word&amp;#039;&amp;#039; itself (by default), or {{para|yes}} value (when entered non-empty).&lt;br /&gt;
:When not found (False), the function returns a empty string ({{code|&amp;#039;&amp;#039;}}), or the {{para|no}} value when entered.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=source|2=alpha, foo, lima}}&lt;br /&gt;
| {{para|word|foo}}&lt;br /&gt;
| {{#invoke:Str find word|main |explain=true |source=alpha, foo, lima|word=foo}}&lt;br /&gt;
| {{aye}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=source|2=alpha, foo, lima}}&lt;br /&gt;
| {{para|word|bar}}&lt;br /&gt;
| {{#invoke:Str find word|main |explain=true |source=alpha, foo, lima|word=foo-bar}}&lt;br /&gt;
| {{nay}}&lt;br /&gt;
| full word &amp;#039;&amp;#039;bar&amp;#039;&amp;#039; not in the source&lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=source|2=alpha, foo, lima}}&lt;br /&gt;
| {{para|word|foobar}}&lt;br /&gt;
| {{#invoke:Str find word|main |explain=true |source=alpha, foo, lima}}&lt;br /&gt;
| {{nay}}&lt;br /&gt;
| word &amp;#039;&amp;#039;foobar&amp;#039;&amp;#039; not in the source as full word&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Case, Literal, ===&lt;br /&gt;
: todo: examplify&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! {{para|1=source}}&amp;lt;br/&amp;gt; {{para|1=s}}&lt;br /&gt;
! {{para|1=word}}&amp;lt;br/&amp;gt;{{para|1=w}}&lt;br /&gt;
! {{para|1=case}}&lt;br /&gt;
! result&lt;br /&gt;
! note&lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=s|2=alpha, foo, lima}}&lt;br /&gt;
| {{para|w|foo}}&lt;br /&gt;
|&lt;br /&gt;
| &amp;amp;rarr; {{#invoke:Str find word|main |explain=true |s=alpha, foo, lima|w=foo|yes=yes|no=no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=s|2=alpha, foo, lima}}&lt;br /&gt;
| {{para|w|foobar}}&lt;br /&gt;
|&lt;br /&gt;
| &amp;amp;rarr; {{#invoke:Str find word|main |explain=true |source=alpha, foo, lima|word=foobar|yes=yes|no=no}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=s|2=alpha, foobar, lima}}&lt;br /&gt;
| {{para|w|foo}}&lt;br /&gt;
|&lt;br /&gt;
| &amp;amp;rarr; {{#invoke:Str find word|main |explain=true |source=alpha, foobar, lima|word=foo|yes=yes|no=no}}&lt;br /&gt;
| &amp;#039;foo&amp;#039; is not the complete word&lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=s|2=alpha, FOO, lima}}&lt;br /&gt;
| {{para|w|foo}}&lt;br /&gt;
|&lt;br /&gt;
| &amp;amp;rarr; {{#invoke:Str find word|main |explain=true |source=alpha, FOO, lima|word=foo|yes=yes|no=no|case=false}}&lt;br /&gt;
| {{para|case|false}}: a=A &amp;#039;&amp;#039;(default)&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=s|2=alpha, FOO, lima}}&lt;br /&gt;
| {{para|w|foo}}&lt;br /&gt;
|&lt;br /&gt;
| &amp;amp;rarr; {{#invoke:Str find word|main |explain=true |source=alpha, FOO, lima|word=foo|yes=yes|no=no|case=true}}&lt;br /&gt;
| {{para|case|true}}: a=/=A&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===AND-, OR-wordlist checks===&lt;br /&gt;
:{{para|word}}  as noted, can be a &amp;#039;&amp;#039;list of words&amp;#039;&amp;#039;. All will be checked with the &amp;#039;&amp;#039;AND&amp;#039;&amp;#039;-requirement (each word must be present).&lt;br /&gt;
:{{para|andwords}} accepts a &amp;#039;&amp;#039;list of words&amp;#039;&amp;#039; that all will be checked with the &amp;#039;&amp;#039;AND&amp;#039;&amp;#039;-requirement (each word must be present).&lt;br /&gt;
::When both {{para|word}}, {{para|andwords}} are present, they are combined into one single &amp;#039;&amp;#039;AND&amp;#039;&amp;#039;-wordlist.&lt;br /&gt;
:{{para|orwords}} accepts a &amp;#039;&amp;#039;list of words&amp;#039;&amp;#039; that all will be checked with the &amp;#039;&amp;#039;OR&amp;#039;&amp;#039;-requirement (at least one of the words must be present).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! {{para|1=source}}&amp;lt;br/&amp;gt;{{para|1=s}}&lt;br /&gt;
! {{para|1=andwords}}, {{para|1=andw}}&amp;lt;br/&amp;gt;{{para|1=word}}&amp;lt;br/&amp;gt;{{para|1=w}}&lt;br /&gt;
! {{para|1=orwords}}&amp;lt;br/&amp;gt;{{para|1=orw}}&lt;br /&gt;
! result TODO fix&lt;br /&gt;
! note&lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=s|2=alpha, foo, lima, delta}}&lt;br /&gt;
| {{para|andw|delta, lima}}&lt;br /&gt;
|&lt;br /&gt;
| {{#invoke:Str find word|main |explain=true |s=alpha, foo, lima, delta|andw=delta, lima}}&lt;br /&gt;
| both words present in the source&lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=s|2=alpha, foo, lima, delta}}&lt;br /&gt;
| {{para|andw|foo, nov}}&lt;br /&gt;
|&lt;br /&gt;
| {{#invoke:Str find word|main |explain=true |s=alpha, foo, lima, delta}}&lt;br /&gt;
| AND-logic: A word in the &amp;#039;&amp;#039;AND&amp;#039;&amp;#039;-list is not present ({{mono|nov}}), so false&lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=s|2=alpha, foo, lima, delta}}&lt;br /&gt;
| {{para|andw|delta}}&lt;br /&gt;
|&lt;br /&gt;
| {{#invoke:Str find word|main |explain=true |s=alpha, foo, lima, delta|andw=delta}}&lt;br /&gt;
| {{para|w}} and {{para|andw}} are combined&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=s|2=alpha, foo, lima, delta}}&lt;br /&gt;
|&lt;br /&gt;
| {{para|orw|delta, lima}}&lt;br /&gt;
| {{#invoke:Str find word|main |explain=true |s=alpha, foo, lima, delta|orw=delta, lima}}&lt;br /&gt;
| both OR-words are present in the source&lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=s|2=alpha, foo, lima, delta}}&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| {{#invoke:Str find word|main |explain=true |s=alpha, foo, lima, delta|orw=foo, nov}}&lt;br /&gt;
| OR-logic: one of the words is present ({{para|foo}}), so true&lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=s|2=alpha, foo, lima, delta}}&lt;br /&gt;
| {{para|andw|alpha, lima}}&lt;br /&gt;
| {{para|orw|foo, nov}}&lt;br /&gt;
| {{#invoke:Str find word|main |explain=true |s=alpha, foo, lima, delta|andw=alpha, lima|orw=foo, nov}}&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=s|2=alpha, foo, lima, delta}}&lt;br /&gt;
| {{para|andw|bar, april}}&lt;br /&gt;
| {{para|orw|nov, dec}}&lt;br /&gt;
| {{#invoke:Str find word|main |explain=true |s=alpha, foo, lima, delta|andw=delta|orw=nov, dec}}&lt;br /&gt;
| none of the OR-words is present, so false&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===True, False rephrase options {{para|yes, no}}===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;5&amp;quot; style=&amp;quot;padding-left:3em; text-align:left;&amp;quot; | {{code|1=...}} {{para|yes|Yes, hit}} {{para|no|Not found}}&lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=source|2=alpha, foo, lima}}&lt;br /&gt;
| {{para|word|foo}}&lt;br /&gt;
| {{#invoke:Str find word|main |explain=true |source=alpha, foo, lima|word=foo|yes=Yes, hit|no=No, not found}}&lt;br /&gt;
| {{aye}}&lt;br /&gt;
|-&lt;br /&gt;
| {{para|1=source|2=alpha, foo, lima}}&lt;br /&gt;
| {{para|word|foobar}}&lt;br /&gt;
| {{#invoke:Str find word|main |explain=true |source=alpha, foo, lima|word=foobar|yes=Yes, hit|no=No, not found}}&lt;br /&gt;
| {{nay}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Edge cases: (blank input,) ===&lt;br /&gt;
:&amp;#039;&amp;#039;todo&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
==issues and ideas==&lt;br /&gt;
* Keep the order, Foo, bar -&amp;gt; foo(1), bar(2)&lt;br /&gt;
::eg table col userinput options, then cols in that order?&lt;br /&gt;
&lt;br /&gt;
* Check comma example above ({{code|1=&amp;quot;Hello, world&amp;quot;}}) (currently returns: 2 hitwords &amp;amp; sep=comma Dec2022)&lt;br /&gt;
&lt;br /&gt;
*Make sure all boolean logic is by [[:Module:Yesno]]&lt;br /&gt;
:&amp;#039;&amp;#039;and&amp;#039;&amp;#039; resolve {{code|nil}}&lt;br /&gt;
&lt;br /&gt;
*option {{para|sep}} for output list &amp;gt;,&amp;amp;nbsp;&amp;lt; dflt&lt;br /&gt;
&lt;br /&gt;
==Errors and analysis==&lt;br /&gt;
* The logic itself does not produce errors. There is always a True of False result. &lt;br /&gt;
&lt;br /&gt;
* Pages with Unknown parameters are listed in {{clc|Category:Pages using str find word with unknown parameters}}.&lt;br /&gt;
&lt;br /&gt;
:There are no logical errors foreseen: any flaw in the input will return a False result (for example, no input strings to check were entered).&lt;br /&gt;
&lt;br /&gt;
* {{para|explain|true}}: when in {{button|Preview}}, display a report on input, output and the logical steps (debug).&lt;br /&gt;
* {{para|explain|testcases}}: When set in ns {{mono|1=Template}} or {{mono|1=User}} on subpage {{mono|1=/testcases}}, the Preview report is static (shown permanently).&lt;br /&gt;
===code===&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{sandbox other||&lt;br /&gt;
[[:Category:Modules that manipulate strings]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;DePiep</name></author>
	</entry>
</feed>