Modul:String/doc

Izvor: Hrvatska internetska enciklopedija
Prijeđi na navigaciju Prijeđi na pretraživanje
Ovo je dokumentacijska podstranica za Modul:String.
Sadrži informacije o uporabi, kategorijama i ostalom sadržaju koji nije dio izvorne stranice.

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