Toggle menu
243,8 tis.
110
18
641,5 tis.
Hrvatska internetska enciklopedija
Toggle preferences menu
Toggle personal menu
Niste prijavljeni
Your IP address will be publicly visible if you make any edits.

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

Izvor: Hrvatska internetska enciklopedija
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

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:
{{#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

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

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
{{#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

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