More actions
m bnz |
preuzeto s mediawiki |
||
| Nisu prikazane 2 međuinačice | |||
| Redak 1: | Redak 1: | ||
Modul pruža osnovne operacije rada s tekstom. | Modul pruža osnovne operacije rada s tekstom. | ||
Pogrješke u sintaksi modula postavit će stranicu s pogrješkom u kategoriju [[:Kategorija:Pogreške u modulu String]]. | |||
Sintaksa poziva: {{mlx|string|''funkcija''|''parametri''}} | Sintaksa poziva: {{mlx|string|''funkcija''|''parametri''}} | ||
| Redak 9: | Redak 8: | ||
=== globalni parametri === | === globalni parametri === | ||
U svakoj od nižih funkcija možete koristiti i parametre: | U svakoj od nižih funkcija možete koristiti i parametre: | ||
:'''ignore_errors''' - ako je vrijednost postavljena na ''true'' ili ''1'', ako dođe do | :'''ignore_errors''' - ako je vrijednost postavljena na ''true'' ili ''1'', ako dođe do pogrješke, umjesto poruke o pogrješci prikazat će se prazni string (""). | ||
:'''error_category''' - ako se dogodi | :'''error_category''' - ako se dogodi pogrješka, stranica će biti postavljena u kategoriju zadanu ovim parametrom, umjesto u [[:Kategorija:Pogreške u modulu String]]. | ||
:'''no_category''' - ako je vrijednost postavljena na ''true'' ili ''1'', ako dođe do | :'''no_category''' - ako je vrijednost postavljena na ''true'' ili ''1'', ako dođe do pogrješke, stranica se neće postaviti u kategoriju [[:Kategorija:Pogreške u modulu String]]. | ||
=== len === | === len === | ||
| Redak 98: | Redak 97: | ||
:* '''target''' - uzorak ili string koji tražimo u punom tekstu | :* '''target''' - uzorak ili string koji tražimo u punom tekstu | ||
:* '''start''' - indeks u punom tekstu od kojeg započinjemo pretragu [zadano ''1''] | :* '''start''' - indeks u punom tekstu od kojeg započinjemo pretragu [zadano ''1''] | ||
:* '''plain''' - definira oblik uzorka: vrijednost ''true'' shvaća uzorak kao čisti tekst, dok vrijednost ''false'' shvaća uzorak kao inačicu [[Regularni izraz|regularnog izraza]] koji koristi jezik [[Lua]]. Pogledajte [ | :* '''plain''' - definira oblik uzorka: vrijednost ''true'' shvaća uzorak kao čisti tekst, dok vrijednost ''false'' shvaća uzorak kao inačicu [[Regularni izraz|regularnog izraza]] koji koristi jezik [[Lua]]. Pogledajte [https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Ustring_patterns detalje ovdje] | ||
:Primjeri: | :Primjeri: | ||
::{{mlx|String|find|abc123def|12}} → {{#invoke:String|find|abc123def|12}} | ::{{mlx|String|find|abc123def|12}} → {{#invoke:String|find|abc123def|12}} | ||
| Redak 106: | Redak 105: | ||
::{{mlx|String|find|3=source=abc123def |4=target= 123 }} → {{#invoke:String|find|source=abc123def|target=123}} | ::{{mlx|String|find|3=source=abc123def |4=target= 123 }} → {{#invoke:String|find|source=abc123def|target=123}} | ||
::{{mlx|String|find|3=source=abc123def|4=target=%d |5=start=3 |6=plain=false }} → {{#invoke:String|find|source=abc123def|target=%d|start=3|plain=false}} | ::{{mlx|String|find|3=source=abc123def|4=target=%d |5=start=3 |6=plain=false }} → {{#invoke:String|find|source=abc123def|target=%d|start=3|plain=false}} | ||
== Ustring patterns == | |||
Patterns in the ustring functions use the same syntax as the [[<tvar name=anchor>#Patterns</tvar>|String library patterns]]. The major difference is that the character classes are redefined in terms of w:Unicode character property|Unicode character properties: | |||
* '''<code>%a</code>''': represents all characters with General Category "Letter". | |||
* '''<code>%c</code>''': represents all characters with General Category "Control". | |||
* '''<code>%d</code>''': represents all characters with General Category "Number, decimal digit". | |||
* '''<code>%l</code>''': represents all characters with General Category "Lowercase Letter". | |||
* '''<code>%p</code>''': represents all characters with General Category "Punctuation". | |||
* '''<code>%s</code>''': represents all characters with General Category "Separator", plus tab, linefeed, carriage return, vertical tab, and form feed. | |||
* '''<code>%u</code>''': represents all characters with General Category "Uppercase Letter". | |||
* '''<code>%w</code>''': represents all characters with General Category "Letter" or "Decimal Number". | |||
* '''<code>%x</code>''': adds fullwidth character versions of the hex digits. | |||
Like in [[<tvar name=anchor1>#Patterns</tvar>|String library patterns]], <tvar name=anchor2>'''<code>%A</code>''', '''<code>%C</code>''', '''<code>%D</code>''', '''<code>%L</code>''', '''<code>%P</code>''', '''<code>%S</code>''', '''<code>%U</code>''', '''<code>%W</code>'''{{int|and}}{{int|word-separator}}'''<code>%X</code>'''</tvar> here represent the complementary set ("all characters ''without'' given General Category"). | |||
In all cases, characters are interpreted as Unicode characters instead of bytes, so ranges such as <tvar name=1><code>[0-9]</code></tvar>, patterns such as <tvar name=2><code>%b«»</code></tvar>, and quantifiers applied to multibyte characters will work correctly. Empty captures will capture the position in code points rather than bytes. | |||
{{red|Known limitations}}: Unlike [[<tvar name=anchor1>#Patterns</tvar>|String library patterns]], Ustring library patterns have a maximum length of <tvar name=1>{{formatnum:10000}}</tvar> bytes. If the pattern exceeds this length, then the Ustring function will throw an error. Because the String library has its own maximum of <tvar name=2>32</tvar> captures (unlike the Ustring library), it is therefore impossible to use a pattern which exceeds both limits, as it will be incompatible with both libraries. | |||
{{note|1= 9 ASCII characters, <tvar name=11><code>$</code>, <code>+</code>, <code><</code>, <code>=</code>, <code>></code>, <code>^</code>, <code>`</code>, <code>{{!}}</code>, <code>~</code></tvar>, can be matched by <tvar name=10><code>%p</code></tvar> in the string library but not in the ustring library, as Unicode classifies them as Symbols rather than Punctuation.}} | |||
Posljednja izmjena od 17. prosinac 2025. u 03:53
Modul pruža osnovne operacije rada s tekstom.
Pogrješke u sintaksi modula postavit će stranicu s pogrješkom u kategoriju Kategorija:Pogreške u modulu String.
Sintaksa poziva: {{#invoke:string|funkcija|parametri}}
Funkcije
globalni parametri
U svakoj od nižih funkcija možete koristiti i parametre:
- ignore_errors - ako je vrijednost postavljena na true ili 1, ako dođe do pogrješke, umjesto poruke o pogrješci prikazat će se prazni string ("").
- error_category - ako se dogodi pogrješka, stranica će biti postavljena u kategoriju zadanu ovim parametrom, umjesto u Kategorija:Pogreške u modulu String.
- no_category - ako je vrijednost postavljena na true ili 1, ako dođe do pogrješke, stranica se neće postaviti u kategoriju Kategorija:Pogreške u modulu String.
len
vraća duljinu stringa zadanog parametrom
{{#invoke:string|len|abcd}}-> 4- Razmaci na početku i kraju se ubrajaju u znakove:
{{#invoke:string|len| abcd }}-> 8
- Ako parametar sadrži znak jednakosti, potrebno je upotrijebiti parametar s:
{{#invoke:string|len|s=ab=cd}}-> 5
- Pri pozivu parametrom s, razmaci na početku i kraju se ne ubrajaju:
{{#invoke:string|len|s= ab=c d }}-> 6
sub
vraća znakove između zadane početne i krajnje pozicije
{{#invoke:String|sub|puni_tekst|početna_pozicija|krajnja_pozicija}}- ili
{{#invoke:String|sub|s=puni_tekst|i=početna_pozicija|j=krajnja_pozicija}}- Primjeri:
- Negativna vrijednost parametara interpretira se kao brojenje od kraja
sublength
vraća znakove definirane početnom pozicijom i duljinom
{{#invoke:String|sublength|puni_tekst|početna_pozicija|duljina}}- ili
{{#invoke:String|sublength|s=puni_tekst|i=početna_pozicija|len=duljina}}- Primjeri:
match
vraća dio teksta koji se poklapa sa zadanim uzorkom
{{#invoke:String|match|puni_tekst|uzorak|početna pozicija|broj poklapanja|tekst ili regex|poruka ako nema poklapanja}}- ili
{{#invoke:String|match|s=puni_tekst|pattern=uzorak|start=početna pozicija|match=broj poklapanja|plain=tekst ili regex|nomatch=poruka ako nema poklapanja}}- gdje je
- s - puni tekst u kojem tražimo uzorak
- pattern - uzorak ili string koji tražimo u punom tekstu
- start - indeks u punom tekstu od kojeg započinjemo pretragu [zadano 1]
- match - ako imamo isto poklapanje više puta u tekstu, definira broj poklapanja kojeg vraćamo (npr. broj 2 za drugo poklapanje od početka). Ako se unese negativan broj, funkcija tada broji od kraja teksta (npr. -1 vraća zadnje poklapanje od početka) [zadano 1]
- plain - definira oblik uzorka: vrijednost true shvaća uzorak kao čisti tekst, dok vrijednost false shvaća uzorak kao inačicu regularnog izraza koji koristi jezik Lua. Pogledajte detalje ovdje
- nomatch - definira vrijednost ili tekst ako uzorak nije pronađen. Ako ništa nije zadano, vraća "String Module Error: Match not found"
- Primjeri:
{{#invoke:String|match|abc123def456|%d+}}→ 123{{#invoke:String|match|s=abc123def456|pattern=%d+}}→ 123{{#invoke:String|match|abc123def456|%d+|5}}→ 23{{#invoke:String|match|s=abc123def456|pattern=%d+|start=6}}→ 3{{#invoke:String|match|s=abc123def456|pattern=%d+|start=6|match=2}}→ 456{{#invoke:String|match|s=abc123%d+|pattern=%d+}}→ 123{{#invoke:String|match|s=abc123%d+|pattern=%d+|plain=true}}→ %d+{{#invoke:String|match|s=abc|pattern=%d}}→ String Module Error: Match not found{{#invoke:String|match|s=abc|pattern=%d|nomatch=Nisu pronađene brojčane vrijednosti}}→ Nisu pronađene brojčane vrijednosti{{#invoke:String|match|s=abc|pattern=%d|ignore_errors=true}}→{{#invoke:String|match|s=0012001200|pattern=0*(%d*)}}→ 12001200
pos
vraća jedan znak sa zadane pozicije
{{#invoke:String|pos|puni tekst|broj pozicije}}- ili
{{#invoke:String|pos|target=puni tekst|pos=broj pozicije}}- Napomene:
- Negativna vrijednost parametra interpretira se kao brojenje od kraja umjesto od početka
- Primjeri
str_find
funkcija je dostupna zbog nazadne kompatibilnosti s postojećim kodom, no ne preporuča se njeno korištenje. Umjesto nje molim koristite funkciju find opisanu niže.
find
vraća poziciju teksta koji se poklapa sa zadanim uzorkom
{{#invoke:String|find|puni_tekst|uzorak|početna pozicija|tekst ili regex}}- ili
{{#invoke:String|find|source=puni_tekst|target=uzorak|start=početna pozicija|plain=tekst ili regex}}- gdje je
- source - puni tekst u kojem tražimo uzorak
- target - uzorak ili string koji tražimo u punom tekstu
- start - indeks u punom tekstu od kojeg započinjemo pretragu [zadano 1]
- plain - definira oblik uzorka: vrijednost true shvaća uzorak kao čisti tekst, dok vrijednost false shvaća uzorak kao inačicu regularnog izraza koji koristi jezik Lua. Pogledajte detalje ovdje
- Primjeri:
{{#invoke:String|find|abc123def|12}}→ 4{{#invoke:String|find|source=abc123def|target=12}}→ 4{{#invoke:String|find|source=abc123def|target=pqr}}→ 0{{#invoke:String|find|abc123def|123}}→ 4{{#invoke:String|find|source=abc123def|target= 123}}→ 4{{#invoke:String|find|source=abc123def|target=%d|start=3|plain=false}}→ 4
Ustring patterns
Patterns in the ustring functions use the same syntax as the [[<tvar name=anchor>#Patterns</tvar>|String library patterns]]. The major difference is that the character classes are redefined in terms of w:Unicode character property|Unicode character properties:
%a: represents all characters with General Category "Letter".%c: represents all characters with General Category "Control".%d: represents all characters with General Category "Number, decimal digit".%l: represents all characters with General Category "Lowercase Letter".%p: represents all characters with General Category "Punctuation".%s: represents all characters with General Category "Separator", plus tab, linefeed, carriage return, vertical tab, and form feed.%u: represents all characters with General Category "Uppercase Letter".%w: represents all characters with General Category "Letter" or "Decimal Number".%x: adds fullwidth character versions of the hex digits.
Like in [[<tvar name=anchor1>#Patterns</tvar>|String library patterns]], <tvar name=anchor2>%A, %C, %D, %L, %P, %S, %U, %WPredložak:IntPredložak:Int%X</tvar> here represent the complementary set ("all characters without given General Category").
In all cases, characters are interpreted as Unicode characters instead of bytes, so ranges such as <tvar name=1>[0-9]</tvar>, patterns such as <tvar name=2>%b«»</tvar>, and quantifiers applied to multibyte characters will work correctly. Empty captures will capture the position in code points rather than bytes.
Predložak:Red: Unlike [[<tvar name=anchor1>#Patterns</tvar>|String library patterns]], Ustring library patterns have a maximum length of <tvar name=1>10.000</tvar> bytes. If the pattern exceeds this length, then the Ustring function will throw an error. Because the String library has its own maximum of <tvar name=2>32</tvar> captures (unlike the Ustring library), it is therefore impossible to use a pattern which exceeds both limits, as it will be incompatible with both libraries.
<cite id="endnote_9 ASCII characters, <tvar name=11>$, +, <, =, >, ^, `, |, ~</tvar>, can be matched by <tvar name=10>%p</tvar> in the string library but not in the ustring library, as Unicode classifies them as Symbols rather than Punctuation." style="font-style: normal;">[[#ref_9 ASCII characters, <tvar name=11>$, +, <, =, >, ^, `, |, ~</tvar>, can be matched by <tvar name=10>%p</tvar> in the string library but not in the ustring library, as Unicode classifies them as Symbols rather than Punctuation.|^]]