Module:Str find word/doc
| This module depends on the following other modules: |
Implements template {{Str find word}}.
This module looks for a word being present in a comma-separated list of words. It then returns a True or False value. By default, the True-value returned is the found word itself; the False-value is a blank string.
For example, in the source string 'foo, bar' the word 'bar' appears, but the word 'november' does not.
{{#invoke:Str find word |main |source=foo, bar |word=bar}}(True) → bar{{#invoke:Str find word |main |source=alpha, beta, gamma |word=november}}(False) →
Multiple word check: The search can be extended to check for multiple words being present.
AND-list of words, all words must be present:
{{#invoke:Str find word |main |source=alpha, beta, gamma |andwords=beta, alpha}}(True) → beta,alpha{{#invoke:Str find word |main |source=alpha, beta, gamma |andwords=beta, omega}}(False) →
OR-list of words, at least one off the words must be present:
{{#invoke:Str find word |main |source=alpha, beta, gamma |orwords=beta, alpha}}(True) → beta,alpha{{#invoke:Str find word |main |source=alpha, beta, gamma |orwords=beta, omega}}(False) → beta
Complete words: the complete word is 'foobar' (example needed) Whitespace is trimmed,
The module is aimed at template code usage. (The editor does not have to apply Lua patterns like [%a%d]*).
}}
Parameters
- Main parameters (including their synonyms)
{{Str find word
|source= s=
|word= andwords= andw=
|orwords= orw=
|case=
|out-true=
|out-false=
}}
|
{{Str find word |s= |w= |andw= |orw= |case= |out-true= |out-false=}}
Basic: word is in source-wordlist?
{{Str find word
|source =
|word =
}}
{{Str find word |source=cow, horse, dog, fish |word=dog}}(True) → dog{{Str find word |source=cow, horse, dog, fish |word=cat}}(False) →
True/False return value
- When the word is found in the source (True), the function returns the word itself (by default), or
|out-true=value (when entered non-empty). - When not found (False), the function returns a empty string (
''), or the|out-false=value when entered.
|source=alpha, foo, lima
|
|word=foo
|
foo | ||
|source=alpha, foo, lima
|
|word=bar
|
full word bar not in the source | ||
|source=alpha, foo, lima
|
|word=foobar
|
word foobar not in the source as full word |
AND-wordlist checks
|word=can be a list of words. All will be checked with the AND-requirement (each word must be present).|andwords=accepts a list of words that all will be checked with the AND-requirement (each word must be present).- Alway, both
|word=and|andwords=are combined into one single AND-wordlist.
|source=|s=
|
|andwords=|word=
|
result | note |
|---|---|---|---|
|s=alpha, foo, lima, delta
|
|andw=delta, lima
|
delta,lima | both words present in the source |
|s=alpha, foo, lima, delta
|
|andw=foo, nov
|
AND-logic: A word in the AND-list is not present (nov), so false | |
|s=alpha, foo, lima, delta
|
|andw=delta
|
delta | |w= and |andw= are combined
|
|s=alpha, foo, lima, delta
|
|andw=bar, april
|
delta |
OR-wordlist checks
|orwords=,|orw=- Accepts a list of words that all will be checked by the OR-requirement ("at least one of the words must be present).
|source=|s=
|
|orwords=
|
result | note | |
|---|---|---|---|---|
|s=alpha, foo, lima, delta
|
delta,lima | both words present in the source | ||
|s=alpha, foo, lima, delta
|
||||
|s=alpha, foo, lima, delta
|
|andw=delta
|
delta | |w= and |andw= are combined
| |
|s=alpha, foo, lima, delta
|
|orw=delta, lima
|
delta,lima | both OR-words are present in the source | |
|s=alpha, foo, lima, delta
|
foo | OR-logic: one of the words is present (|foo=), so true
| ||
|s=alpha, foo, lima, delta
|
|andw=alpha, lima
|
|orw=foo, nov
|
alpha,lima,foo | |
|s=alpha, foo, lima, delta
|
|andw=bar, april
|
|orw=nov, dec
|
none of the OR-words is present, so false |
both AND-words and OR-words to check
|andwords=|orwords=- checks both lists for their own check: "ANd-words" must all be present, "OR-words" must have at least one present.
- Result: True if both check results are True, otherwise False.
|source=|s=
|
|andwords=|word=
|
|orwords=
|
result | note |
|---|---|---|---|---|
|s=alpha, foo, lima, delta
|
|andw=delta, lima
|
delta,lima | both words present in the source | |
|s=alpha, foo, lima, delta
|
|andw=foo, nov
|
AND-logic: A word in the AND-list is not present (nov), so false | ||
|s=alpha, foo, lima, delta
|
|andw=delta
|
delta | |w= and |andw= are combined
| |
|s=alpha, foo, lima, delta
|
|orw=delta, lima
|
delta,lima | both OR-words are present in the source | |
|s=alpha, foo, lima, delta
|
foo | OR-logic: one of the words is present (|foo=), so true
| ||
|s=alpha, foo, lima, delta
|
|andw=alpha, lima
|
|orw=foo, nov
|
alpha,lima,foo | |
|s=alpha, foo, lima, delta
|
|andw=bar, april
|
|orw=nov, dec
|
none of the OR-words is present, so false |
Edge cases
- Blank list(s)
- Empty input string(s) will conclude negative:
|source, andwords, orwords=<blank>
| ||||
|---|---|---|---|---|
|source=<blank>
|
|word=beta
|
|||
|source=alpha, beta, gamma
|
|word=<blank>
|
|||
untested; noinclude from main /doc
- As of Mar 2023, not supported.
casesensitive
|casesensitive=true,|case=trueCase-sensitive (A=/=a) DEFAULT|casesensitive=false,|case=falseNot case-sensitive (A=a)
|source=|s=
|
|word=|w=
|
|case=
|
result | note |
|---|---|---|---|---|
|s=alpha, foo, lima
|
|w=foo
|
→ foo | ||
|s=alpha, foo, lima
|
|w=foobar
|
→ | ||
|s=alpha, foobar, lima
|
|w=foo
|
→ | 'foo' is not the complete word | |
|s=alpha, FOO, lima
|
|w=foo
|
→ foo | |case=false: a=A (default)
| |
|s=alpha, FOO, lima
|
|w=foo
|
→ | |case=true: a=/=A
|
Rephrase True, False result: |out-true=, out-false=
|out-true=out-true, a hit|out-false=out-falset found
| ||||
|---|---|---|---|---|
|source=alpha, foo, lima
|
|word=foo
|
foo | ||
|source=alpha, foo, lima
|
|word=foobar
|
|||
boolean words
|booleans=|booleans=truewill convert all boolean words into "True/False".- per module:Yesno (
Yes, true, yes, 1= true) (todo: document value 2?, nil, blanketc. Irrespective of case?) - other words not changed ("horse" remains horse, not T/F).
- Note: per logic definition, the word "false" is returned (as being found).
|booleans=true
| ||||
|---|---|---|---|---|
|source=YeS
|
|word=true
|
true | ||
|source=0
|
|word=FalSe
|
false | note: the word "false" is found and returned | |
quotes, escape
- under construction
synonyms
- under construction
Errors and analysis
- The logic itself does not produce errors. There is always a True of False result.
- Pages with Unknown parameters are listed in Category:Pages using str find word with unknown parameters (0).
- 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).
|explain=true: when in Preview, display a report on input, output and the logical steps (debug).|explain=testcases: When set in ns Template or User on subpage /testcases, the Preview report is static (shown permanently).
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.