Module:String/doc: Difference between revisions

Content deleted Content added
m _ to space
Copy findpagetext from Module:String
 
(9 intermediate revisions by 6 users not shown)
Line 1:
{{Used in system}}
{{Module rating|protected}}
{{cascade-protected template|page=module}}
{{Lmd|String}}
 
Line 120 ⟶ 121:
: In some cases it may be possible to make multiple matches on a single string. This specifies which match to return, where the first match is match= 1. If a negative number is specified then a match is returned counting from the last match. Hence match = -1 is the same as requesting the last match. Defaults to 1.
; plain
: Boolean flag indicating that pattern should be understood as plain text and not as a [[mw:Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto ustring pattern]] (a unicode-friendly [[w:en:Lua (programming language)|Lua]]-style [[w:en:regular expression|regular expression]]). Defaults to false (to change: <code>plain=true</code>)
; nomatch
: If no match is found, output the "nomatch" value rather than an error.
Line 129 ⟶ 130:
If one adds the parameter ignore_errors=true, then the error will be suppressed and an empty string will be returned on any failure.
 
For information on constructing [[w:en:Lua (programming language)|Lua]] patterns, a form of [[w:en:regular expression|regular expression]], see:
 
* [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#Patterns|Scribunto patterns]]
Line 229 ⟶ 230:
: The index within the source string to start the search, defaults to 1
; plain
: Boolean flag indicating that target should be understood as plain text and not as a [[mw:Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto ustring pattern]] (a unicode-friendly [[w:en:Lua (programming language)|Lua]]-style [[w:en:regular expression|regular expression]]); defaults to true
 
This function returns the first index >= "start" where "target" can be found within "source". Indices are 1-based. If "target" is not found, then this function returns 0. If either "source" or "target" are missing / empty, this function also returns 0.
Line 250 ⟶ 251:
Testing for the presence of a string:
* <code>{{pf|ifexpr|<nowiki>{{#invoke:string|find|haystack|needle}}</nowiki>|Found needle|Didn't find needle}}</code> → {{#ifexpr:{{#invoke:string|find|haystack|needle}}|Found needle|Didn't find needle}}
 
=== findpagetext ===
The findpagetext function returns the position of a piece of text in the wikitext source of a page. It takes up to four parameters:
* First positional parameter or |text is the text to be searched for.
* Optional parameter |title is the page title, defaults to the current page.
* Optional parameter |plain is either true for a plain search (default), or false for a [[mw:Extension:Scribunto/Lua reference manual #Patterns|Lua pattern]] search.
* Optional parameter |nomatch is the value returned when no match is found; default is nothing.
 
; Examples
: <code><nowiki>{{#invoke:String |findpagetext |text=Youghiogheny}}</nowiki></code> → {{#invoke:String2 |findpagetext |text=Youghiogheny}}
: <code><nowiki>{{#invoke:String |findpagetext |text=Youghiogheny |nomatch=not found}}</nowiki></code> → {{#invoke:String2 |findpagetext |text=Youghiogheny |nomatch=not found}}
: <code><nowiki>{{#invoke:String |findpagetext |text=Youghiogheny |title=Boston Bridge |nomatch=not found}}</nowiki></code> → {{#invoke:String2 |findpagetext |text=Youghiogheny |title=Boston Bridge |nomatch=not found}}
: <code><nowiki>{{#invoke:String |findpagetext |text=river |title=Boston Bridge |nomatch=not found}}</nowiki></code> → {{#invoke:String2 |findpagetext |text=river |title=Boston Bridge |nomatch=not found}}
: <code><nowiki>{{#invoke:String |findpagetext |text=[Rr]iver |title=Boston Bridge |plain=false |nomatch=not found}}</nowiki></code> → {{#invoke:String2 |findpagetext |text=[Rr]iver |title=Boston Bridge |plain=false |nomatch=not found}}
: <code><nowiki>{{#invoke:String |findpagetext |text=%[%[ |title=Boston Bridge |plain=f |nomatch=not found}}</nowiki></code> → {{#invoke:String2 |findpagetext |text=%[%[ |title=Boston Bridge |plain=f |nomatch=not found}}
: <code><nowiki>{{#invoke:String |findpagetext |text=%{%{[Cc]oord |title=Boston Bridge |plain=f |nomatch=not found}}</nowiki></code> → {{#invoke:String2 |findpagetext |text=%{%{coord |title=Boston Bridge |plain=f |nomatch=not found}}
The search is case-sensitive, so Lua pattern matching is needed to find <code>river</code> or <code>River</code>. The last example finds <code><nowiki>{{coord</nowiki></code> and <code><nowiki>{{Coord</nowiki></code>. The penultimate example finds a wiki-link.
 
The [[Template:Findpagetext]] is a convenience wrapper for this function.
 
 
 
{{anchor|replace}}
Line 276 ⟶ 298:
: The number of occurrences to replace; defaults to all
; plain
: Boolean flag indicating that pattern should be understood as plain text and not as a [[mw:Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto ustring pattern]] (a unicode-friendly [[w:en:Lua (programming language)|Lua]]-style [[w:en:regular expression|regular expression]]); defaults to true
 
Examples:
Line 324 ⟶ 346:
* <code><nowiki>"{{#invoke:String|escapePattern|10%}}"</nowiki></code> → "{{#invoke:String|escapePattern|10%}}"
 
== count ==
Counts the number of times a given pattern appears in the arguments that get passed on to this module. Counts disjoint matches only.
 
Line 339 ⟶ 361:
: The string or pattern to count occurrences of within source
; plain
: Boolean flag indicating that pattern should be understood as plain text and not as a [[mw:Extension:Scribunto/Lua reference manual#Ustring patterns|Scribunto ustring pattern]] (a unicode-friendly [[w:en:Lua (programming language)|Lua]]-style [[w:en:regular expression|regular expression]]); defaults to true
 
Examples:
Line 349 ⟶ 371:
 
== join ==
Joins all strings passed as arguments into one string, treating the first argument as a separator.
 
Usage:
Line 381 ⟶ 403:
 
== See also==
* {{mfl|Params|mapping_by_replacing}} and other functions from the same module
* {{mfl|MultiReplace|main}}
 
{{String handling templates}}
<includeonly>{{Sandbox other||
[[Category:Modules that add a tracking category]]
[[Category:Modules that manipulate strings|*]]
[[Category:Template metamodules]]
 
}}</includeonly>