Modul:String/doc: razlika između inačica

Izvor: Hrvatska internetska enciklopedija
Prijeđi na navigaciju Prijeđi na pretraživanje
m bnz
preuzeto s mediawiki
 
Nisu prikazane 2 međuinačice
Redak 1: Redak 1:
{{radovi}}
Modul pruža osnovne operacije rada s tekstom.
Modul pruža osnovne operacije rada s tekstom.


Pogreške u sintaksi modula postavit će stranicu s pogreškom u kategoriju [[:Kategorija:Pogreške u modulu String]].
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 pogreške, umjesto poruke o pogrešci prikazat će se prazni string ("").
:'''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 pogreška, stranica će biti postavljena u kategoriju zadanu ovim parametrom, umjesto u [[:Kategorija:Pogreške u modulu 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 pogreške, stranica se neće postaviti u kategoriju [[: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 ===
=== 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 [[:mw:Extension:Scribunto/Lua_reference_manual#Ustring_patterns|detalje ovdje]]
:* '''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>&lt;</code>, <code>=</code>, <code>&gt;</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[uredi]

globalni parametri[uredi]

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[uredi]

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[uredi]

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:
{{#invoke:String|sub|abcdefghi}} → abcdefghi
{{#invoke:String|sub|s=abcdefghi}} → abcdefghi
{{#invoke:String|sub|abcdefghi|3}} → cdefghi
{{#invoke:String|sub|s=abcdefghi|i= 3}} → cdefghi
{{#invoke:String|sub|abcdefghi|3|4}} → cd
{{#invoke:String|sub|s=abcdefghi|i= 3|j= 4}} → cd
Negativna vrijednost parametara interpretira se kao brojenje od kraja
{{#invoke:String|sub|abcdefghi|-3}} → ghi
{{#invoke:String|sub|abcdefghi|2|-3}} → bcdefg

sublength[uredi]

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:
{{#invoke:String|sublength|s= abcdefghi}} → abcdefghi
{{#invoke:String|sublength|s= abcdefghi|i= 3}} → defghi
{{#invoke:String|sublength|s= abcdefghi|i= 3|len= 4}} → defg

match[uredi]

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[uredi]

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
{{#invoke:String|pos|abcdefg|4}} → d
{{#invoke:String|pos|target=abcdefgh|pos=3}} → c
{{#invoke:String|pos|abc|10}}String Module Error: String index out of range

str_find[uredi]

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[uredi]

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[uredi]

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.|^]]