Toggle menu
241,7 tis.
116
19
637,1 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
Bot: Automatski unos stranica
 
preuzeto s mediawiki
 
(Nisu prikazane 3 međuinačice 2 suradnika)
Redak 1: Redak 1:
<!--'''Modul:String/doc'''-->{{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:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}}

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:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} -> 4
Razmaci na početku i kraju se ubrajaju u znakove:
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} -> 8
Ako parametar sadrži znak jednakosti, potrebno je upotrijebiti parametar s:
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} -> 5
Pri pozivu parametrom s, razmaci na početku i kraju se ne ubrajaju:
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} -> 6

sub

vraća znakove između zadane početne i krajnje pozicije

{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}}
ili
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}}
Primjeri:
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → abcdefghi
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → abcdefghi
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → cdefghi
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → cdefghi
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → cd
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → cd
Negativna vrijednost parametara interpretira se kao brojenje od kraja
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → ghi
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → bcdefg

sublength

vraća znakove definirane početnom pozicijom i duljinom

{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}}
ili
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}}
Primjeri:
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → abcdefghi
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → defghi
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → defg

match

vraća dio teksta koji se poklapa sa zadanim uzorkom

{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}}
ili
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}}
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:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → 123
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → 123
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → 23
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → 3
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → 456
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → 123
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → %d+
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}}String Module Error: Match not found
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → Nisu pronađene brojčane vrijednosti
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}}
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → 12001200

pos

vraća jedan znak sa zadane pozicije

{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}}
ili
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}}
Napomene:
Negativna vrijednost parametra interpretira se kao brojenje od kraja umjesto od početka
Primjeri
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → d
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → c
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}}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:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}}
ili
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}}
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:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → 4
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → 4
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → 0
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → 4
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → 4
{{#invoke:Lua error in Modul:Separated_entries at line 26: attempt to call field 'getArgs' (a nil value).}} → 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.|^]]