Obračalnik besedila: Takojšnja obrnitev besedila in preobrat znakov
Brezplačno spletno orodje za obračanje besedila, ki omogoča takojšnjo obrnitev katerega koli niza. Obračanje znakov, preverjanje palindromov in ustvarjanje besedila v obratnem vrstnem redu. Deluje z Unicode, emojiji in vsemi jeziki.
Orodje za obračanje besedila
Spodaj vnesite ali prilepite besedilo za takojšnjo obrnitev vrstnega reda znakov. Rezultate vidite v realnem času med pisanjem.
Dokumentacija
Kaj je orodje za obračanje besedila?
Obračalnik besedila (imenovan tudi orodje za obratno besedilo) obrne vrstni red znakov v besedilu - tako da vzame "Hello World" in ga spremeni v "dlroW olleH". To je presenetljivo uporabno za vse od preverjanja palindromov do ustvarjanja zrcalnega besedila za oblikovanje.
Orodje deluje v realnem času: prilepite ali vtipkate besedilo in takoj ga vidite obrnjeno. Zanimivost obračanja besedila je, da je konceptualno zelo preprosto (samo branje nazaj), kljub temu pa omogoča nekatere zares koristne aplikacije v programiranju, šifriranju in analizi besedil.
Stvar je v tem - videl sem razvijalce, ki uporabljajo obračanje besedila za razhroščevanje, oblikovalce, ki ga uporabljajo za vizualne učinke, in pedagoge, ki ga uporabljajo za poučevanje manipulacije nizov. Pogost scenarij je, ko delate z algoritmi za zaznavanje palindromov in potrebujete hitro preverjanje svoje logike s testnimi primeri.
Kako uporabljati obračalnik besedila
Uporaba tega orodja za obračanje besedila poteka v treh preprostih korakih:
- Vnesite svoje besedilo v vnosno polje - vnesite neposredno ali prilepite iz odložišča
- Opazujte čarovnijo, ko se obrnjeno besedilo prikaže takoj spodaj (ni treba klikniti ničesar)
- Kopirajte rezultat z enim klikom z gumbom za kopiranje
Orodje procesira vse v realnem času, kar pomeni, da lahko eksperimentirate in vidite rezultate med pisanjem. Deluje z vsemi nabori znakov - angleščina, emoji, posebni simboli, celo Unicode znaki iz jezikov, kot sta japonščina ali arabščina.
Formula in algoritem obračanja besedila
Tako matematično deluje obračanje besedila. Za niz dolžine s characters , obrnjen niz je:
V praksi programerji implementirajo to s tremi glavnimi pristopi:
- Obračanje polja: Razdelite niz na znake, obrnite polje, nato jih ponovno združite. Najbolj neposreden in berljiv.
- Tehnika dveh kazalcev: Začnite z obeh koncev, zamenjajte znake med premikanjem proti sredini. Memory-efficient, ko lahko spremenite na mestu.
- Pristop z skladi: Potiskajte znake na sklad (LIFO struktura), nato jih pobirajte. To naravno obrne vrstni red - in je odličen učni primer za podatkovne strukture.
Karakteristike zmogljivosti: Obračanje besedila teče v časovni zahtevnosti (linearno), ker se vsak znak obdela natanko enkrat. Prostorska zahtevnost je tudi , saj potrebujete shraniti obrnjen niz. Za večino praktičnih rab z besedilom pod nekaj megabajti je delovanje trenutno.
Vredno je omeniti - če obračate massive tekstovne datoteke (kot so dnevniki ali nabori podatkov), boste morda želeli razmisliti o pristopih pretakanja, da se izognete nalaganju vsega v spomin naenkrat.
Postopek obračanja besedila korak za korakom
Popeljal vas bom skozi natančen postopek, kako algoritem obrača vaše besedilo:
- Začnite s praznim rezultatnim vsebnikom
- Berite od zadnjega znaka vašega vnosa, nazaj
- Dodajte vsak znak rezultatu med branjem
- Ustavite se, ko dosežete prvi znak
- Vrnite dokončano obrnjen niz
Praktičen primer z "Hello, World!":
1Vnos: "Hello, World!"
2Korak 1: Začnite s praznim rezultatom: ""
3Korak 2: Vzemite zadnji znak "!" → rezultat = "!"
4Korak 3: Vzemite "d" → rezultat = "!d"
5Korak 4: Vzemite "l" → rezultat = "!dl"
6Korak 5: Nadaljujte za vsak znak...
7Končni izpis: "!dlroW ,olleH"
8Algoritem obravnava vsak znak enako - ne glede na to, ali gre za črko, številko, ločilo, presledek ali emoji. Vse se ohrani v obrnjenem izpisu. Takšna dosledna obravnava je razlog, zakaj deluje zanesljivo v različnih jezikih in naborih znakov.
Robni primeri, ki jih morate poznati
Pri delu z obračanjem besedila boste naleteli na nekaj zanimivih robnih primerov:
Prazni nizi: Obračanje praznega niza vam da... prazen niz. Logično, mar ne? Ni česa za obračanje.
Enojni znak: Obrnite "A" in dobite "A". Je lastni obrat, tako kot vsi enojni znaki.
Unicode in emoji: Tu postane zanimivo. Algoritem pravilno obravnava Unicode, vključno z emoji, japonskimi znaki, arabsko pisavo in drugimi nelatinskimi besedili. Preizkusite z "こんにちは 🌍" in videli boste, da deluje pravilno.
Presledki in posebni znaki: Presledki, tabulatorji, nove vrstice, ločila - vse se obrne natančno tako, kot je. "Hello World" (s 3 presledki) postane "dlroW olleH" (še vedno 3 presledki).
Zelo dolgo besedilo: Za izjemno velike vnose (mislite na megabajte besedila) ste omejeni z razpoložljivim pomnilnikom. Večina sodobnih sistemov to brez težav obvlada do nekaj MB, vendar če obdelujete datoteke velikosti gigabajtov, boste želeli rešitev pretakanja namesto nalaganja vsega v pomnilnik.
Opazil sem: kombinirani znaki in grafemski sklopi se lahko včasih obnašajo nepričakovano. Na primer, emoji z modifikatorji odtenka kože so tehnično večkratne Unicode kodne točke. Večina implementacij to pravilno obravnava, vendar je vredno preizkusiti z vašim specifičnim primerom uporabe, če delate s kompleksnim Unicode.
Realne uporabe obračanja besedila
Morda vas bo presenetilo, kako pogosto se uporablja obračanje besedila. Tu so scenariji, kjer sem to videl uporabljeno:
Programiranje in razvoj
Preverjanje palindromov: Ko potrebujete preveriti, ali se beseda bere enako naprej in nazaj, jo obrnete in primerjate. Pomislite na "racecar" → "racecar" (ujemanje = palindrom).
Vaja z algoritmi za nize: Obračanje besedila je klasična naloga kodirnega intervjuja, ki preizkuša vaše razumevanje manipulacije nizov in osnovnih podatkovnih struktur.
Demonstracije implementacije sklada: Obračanje besedila je popoln primer za poučevanje LIFO (Last-In-First-Out) vedenja, saj sklad naravno obrača vrstni red.
Kriptografija in varnost
Osnovno kodiranje: Čeprav samo po sebi ni varno, se obračanje besedila včasih uporablja kot ena plast v večstopenjskih kodirnih shemah. Gre bolj za prikrivanje kot pravo šifriranje.
Sistemi izziv-odgovor: Nekateri sistemi avtentikacije uporabljajo obrnjena besedila kot del svojega postopka preverjanja.
Ustvarjalne in izobraževalne aplikacije
Besedne igre in uganke: Ustvarjanje izzivov, kjer igralci prepoznavajo obrnjena besedila ali dekodirajo sporočila. Priljubljeno v sobah za pobeg in aplikacijah z ugankami.
Učinki zrcalnega pisanja: Oblikovalci uporabljajo obrnjena besedila za logotipe, umetniške učinke ali vizualne zasnove, ki vključujejo odsev.
Učno orodje: Pri razlagi manipulacije nizov začetnikom je obračanje besedila dovolj preprosto za razumevanje, a dovolj zapleteno za prikaz pomembnih konceptov, kot sta iteracija in upravljanje polj.
Analiza besedila
Lingvistične raziskave: Raziskovalci, ki preučujejo jezikovne vzorce, včasih analizirajo besedilo naprej in nazaj, da identificirajo strukturne značilnosti.
Zaznavanje vzorcev: Preverjanje simetrije v besedilu ali iskanje vstavljenih obrnjenih zaporedij v večjih zbirkah podatkov.
Različne vrste obračanja besedila
Obračanje po posameznih znakih ni vaša edina možnost. Glede na to, kaj želite doseči, bi lahko bolje delovale te alternative:
Obračanje besed: Ohranite vsako besedo nedotaknjeno, ampak obrnite njihov vrstni red. Koristno za učenje jezikov in določene naloge obdelave besedila.
- Primer: "Hello World" → "World Hello"
Obračanje povedi: Obrnite vrstni red povedi, ohranite pa vrstni red besed znotraj vsake povedi.
- Primer: "Hello World. How are you?" → "How are you? Hello World."
Selektivno obračanje: Obrnite samo določene dele glede na vaše merilo - morda samo samoglasniki ali samo besede, daljše od 5 znakov. Odlično za ustvarjanje besednih ugank ali analizo vzorcev.
- Primer: Obračanje samoglasnikov v "Hello World" → "Hollo Werld"
Fonetično obračanje: Uporabljeno v lingvističnih raziskavah, pri čemer se obrnejo glasovi namesto črk. Najprej zahteva fonetični prepis.
Obračanje na ravni bitov: Obrne binarno predstavitev znakov. Vidite ga lahko v določenih kriptografskih operacijah in manipulacijah podatkov na nizki ravni.
Zgodovina obračanja besedila
Obračanje besedila obstaja veliko dlje, kot bi si mislili - od starih pisnih sistemov do sodobnega računalništva.
Stara pisava in zrcalno besedilo
Stare civilizacije so eksperimentirale z usmerjenim pisanjem še pred obstankom računalnikov. Grki in Egipčani so včasih uporabljali slog "boustrophedon", kjer so se vrstice izmenjaje obračale - levo-desno, nato desno-levo, podobno oranju vola (kar "boustrophedon" tudi pomeni).
Leonardo da Vinci je slovito polnil svoje zvezke z zrcalnim pisanjem, kjer besedilo izgleda obrnjeno. Zgodovinarji razpravljajo, ali je bilo to zaradi tajnosti, ker je bil levičar in mu je bilo tako bolj udobno, ali preprosto za preprečevanje madežev črnila. Kakorkoli že, njegovi zvezki dokazujejo, da se je obračanje besedila uporabljalo kot tehnika kodiranja že stoletja.
Računalniška era
Ko so se v 50. in 60. letih prejšnjega stoletja pojavili računalniki, je postala manipulacija nizov temeljita programerska vaja. Obračanje besedila je bil eden izmed klasičnih problemov, ki jih je vsak programer spoznal, poleg razvrščanja in iskanja.
Še posebej zanimivo je bilo: razvoj struktur podatkovnih skladov je naravno povezan z obračanjem besedila. Obnašanje sklada LIFO (zadnji noter-prvi ven) samodejno obrne vrstni red - potisni "HELLO" znak za znakom na sklad, potegni jih dol, in dobiš "OLLEH". Ta elegantna povezava je naredila obračanje besedila priljubljen primer za poučevanje podatkovnih struktur.
Moderne aplikacije
Danes boste algoritme za obračanje besedila našli v ozadju:
- Prevajalniki in razčlenjevalniki: Uporabljeni v sintaktični analizi in vrednotenju izrazov
- Algoritmi za ujemanje nizov: Kot je algoritem Boyer-Moore, ki obdeluje vzorce od desne proti levi
- Kriptografija: Kot gradniki bolj kompleksnih šifrirnih shem
- Procesiranje naravnega jezika: Analiza jezikovnih vzorcev, odkrivanje palindromov in preučevanje strukture besedila
Preprostost algoritma (eden prvih, ki jih spoznaš) v kombinaciji z njegovo praktično uporabnostjo zagotavlja, da ostaja pomemben še desetletja po prvi implementaciji.
Primeri kode: Obračanje besedila v različnih programskih jezikih
Tukaj je prikaz implementacije obračanja besedila v priljubljenih programskih jezikih. Vsak primer prikazuje osnoven algoritem in praktično uporabo:
1' Excel VBA funkcija za obračanje besedila
2Function InvertText(inputText As String) As String
3 Dim i As Integer
4 Dim result As String
5
6 result = ""
7 For i = Len(inputText) To 1 Step -1
8 result = result & Mid(inputText, i, 1)
9 Next i
10
11 InvertText = result
12End Function
13' Uporaba v celici:
14' =InvertText("Hello, World!")
151def invert_text(input_text):
2 """Obrni vrstni red znakov v nizu."""
3 return input_text[::-1]
4
5## Primer uporabe:
6
7original_text = "Pozdravljen, svet!"
8inverted_text = invert_text(original_text)
9print(f"Izvirno: {original_text}")
10print(f"Obrnjeno: {inverted_text}")
11
12# Upravljanje z Unicode znaki
13unicode_text = "こんにちは世界! 🌍"
14inverted_unicode = invert_text(unicode_text)
15print(f"Izvirni Unicode: {unicode_text}")
16print(f"Obrnjen Unicode: {inverted_unicode}")
171function invertText(inputText) {
2 return inputText.split('').reverse().join('');
3}
4
5// Primer uporabe:
6const originalText = "Pozdravljen, svet!";
7const invertedText = invertText(originalText);
8console.log(`Izvirno: ${originalText}`);
9console.log(`Obrnjeno: ${invertedText}`);
10
11// Upravljanje s praznimi nizi
12console.log(`Obrnjen prazen niz: "${invertText("")}"`);
13
14// Upravljanje z Unicode
15const unicodeText = "こんにちは世界! 🌍";
16console.log(`Izvirni Unicode: ${unicodeText}`);
17console.log(`Obrnjen Unicode: ${invertText(unicodeText)}`);
181public class TextInverter {
2 public static String invertText(String inputText) {
3 return new StringBuilder(inputText).reverse().toString();
4 }
5
6 public static void main(String[] args) {
7 String originalText = "Pozdravljen, svet!";
8 String invertedText = invertText(originalText);
9
10 System.out.println("Izvirno: " + originalText);
11 System.out.println("Obrnjeno: " + invertedText);
12
13 // Upravljanje z Unicode znaki
14 String unicodeText = "こんにちは世界! 🌍";
15 String invertedUnicode = invertText(unicodeText);
16 System.out.println("Izvirni Unicode: " + unicodeText);
17 System.out.println("Obrnjen Unicode: " + invertedUnicode);
18 }
19}
201invert_text <- function(input_text) {
2 # Pretvori v vektor znakov, obrni in združi
3 paste(rev(strsplit(input_text, "")[[1]]), collapse = "")
4}
5
6# Primer uporabe
7original_text <- "Pozdravljen, svet!"
8inverted_text <- invert_text(original_text)
9cat("Izvirno:", original_text, "\n")
10cat("Obrnjeno:", inverted_text, "\n")
111function invertedText = invertText(inputText)
2 % Funkcija za obrnitev vrstnega reda znakov v nizu
3 invertedText = inputText(end:-1:1);
4end
5
6% Primer uporabe
7originalText = 'Pozdravljen, svet!';
8invertedText = invertText(originalText);
9fprintf('Izvirno: %s\n', originalText);
10fprintf('Obrnjeno: %s\n', invertedText);
111#include <iostream>
2#include <string>
3#include <algorithm>
4
5std::string invertText(const std::string& inputText) {
6 std::string result = inputText;
7 std::reverse(result.begin(), result.end());
8 return result;
9}
10
11int main() {
12 std::string originalText = "Pozdravljen, svet!";
13 std::string invertedText = invertText(originalText);
14
15 std::cout << "Izvirno: " << originalText << std::endl;
16 std::cout << "Obrnjeno: " << invertedText << std::endl;
17
18 // Upravljanje s praznimi nizi
19 std::cout << "Obrnjen prazen niz: \"" << invertText("") << "\"" << std::endl;
20
21 return 0;
22}
231def invert_text(input_text)
2 input_text.reverse
3end
4
5# Primer uporabe
6original_text = "Pozdravljen, svet!"
7inverted_text = invert_text(original_text)
8puts "Izvirno: #{original_text}"
9puts "Obrnjeno: #{inverted_text}"
10
11# Upravljanje z Unicode znaki
12unicode_text = "こんにちは世界! 🌍"
13inverted_unicode = invert_text(unicode_text)
14puts "Izvirni Unicode: #{unicode_text}"
15puts "Obrnjen Unicode: #{inverted_unicode}"
161<?php
2function invertText($inputText) {
3 return strrev($inputText);
4}
5
6// Primer uporabe
7$originalText = "Pozdravljen, svet!";
8$invertedText = invertText($originalText);
9echo "Izvirno: $originalText\n";
10echo "Obrnjeno: $invertedText\n";
11
12// Upravljanje z Unicode znaki
13$unicodeText = "こんにちは世界! 🌍";
14$invertedUnicode = invertText($unicodeText);
15echo "Izvirni Unicode: $unicodeText\n";
16echo "Obrnjen Unicode: $invertedUnicode\n";
17?>
181fn invert_text(input_text: &str) -> String {
2 input_text.chars().rev().collect()
3}
4
5fn main() {
6 let original_text = "Pozdravljen, svet!";
7 let inverted_text = invert_text(original_text);
8
9 println!("Izvirno: {}", original_text);
10 println!("Obrnjeno: {}", inverted_text);
11
12 // Upravljanje z Unicode znaki
13 let unicode_text = "こんにちは世界! 🌍";
14 let inverted_unicode = invert_text(unicode_text);
15 println!("Izvirni Unicode: {}", unicode_text);
16 println!("Obrnjen Unicode: {}", inverted_unicode);
17}
181using System;
2
3class TextInverter
4{
5 public static string InvertText(string inputText)
6 {
7 char[] charArray = inputText.ToCharArray();
8 Array.Reverse(charArray);
9 return new string(charArray);
10 }
11
12 static void Main()
13 {
14 string originalText = "Pozdravljen, svet!";
15 string invertedText = InvertText(originalText);
16
17 Console.WriteLine($"Izvirno: {originalText}");
18 Console.WriteLine($"Obrnjeno: {invertedText}");
19
20 // Upravljanje s praznimi nizi
21 Console.WriteLine($"Obrnjen prazen niz: \"{InvertText("")}\"");
22
23 // Upravljanje z Unicode znaki
24 string unicodeText = "こんにちは世界! 🌍";
25 string invertedUnicode = InvertText(unicodeText);
26 Console.WriteLine($"Izvirni Unicode: {unicodeText}");
27 Console.WriteLine($"Obrnjen Unicode: {invertedUnicode}");
28 }
29}
301package main
2
3import (
4 "fmt"
5)
6
7func invertText(inputText string) string {
8 runes := []rune(inputText)
9 for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
10 runes[i], runes[j] = runes[j], runes[i]
11 }
12 return string(runes)
13}
14
15func main() {
16 originalText := "Pozdravljen, svet!"
17 invertedText := invertText(originalText)
18
19 fmt.Printf("Izvirno: %s\n", originalText)
20 fmt.Printf("Obrnjeno: %s\n", invertedText)
21
22 // Upravljanje z Unicode znaki
23 unicodeText := "こんにちは世界! 🌍"
24 invertedUnicode := invertText(unicodeText)
25 fmt.Printf("Izvirni Unicode: %s\n", unicodeText)
26 fmt.Printf("Obrnjen Unicode: %s\n", invertedUnicode)
27}
281func invertText(_ inputText: String) -> String {
2 return String(inputText.reversed())
3}
4
5// Primer uporabe
6let originalText = "Pozdravljen, svet!"
7let invertedText = invertText(originalText)
8
9print("Izvirno: \(originalText)")
10print("Obrnjeno: \(invertedText)")
11
12// Upravljanje z Unicode znaki
13let unicodeText = "こんにちは世界! 🌍"
14let invertedUnicode = invertText(unicodeText)
15print("Izvirni Unicode: \(unicodeText)")
16print("Obrnjen Unicode: \(invertedUnicode)")
17Nasveti za optimizacijo zmogljivosti
Če delate s preklapljanjem besedila v produkcijski kodi, so tu dejavniki zmogljivosti, vredni premisleka:
Poraba pomnilnika: Ustvarjanje obrnjenega kopiranja zahteva pomnilnik, enak velikosti vhoda. Za majhna do srednje velika besedila (pod 1 MB) je to zanemarljivo. Za večja besedila začasno podvojite porabo pomnilnika.
Obračanje na mestu: Jeziki kot so C, C++ in Rust vam omogočajo obračanje znakovnih polj neposredno v pomnilniku brez ustvarjanja kopije. To prepolovi porabo pomnilnika, vendar deluje samo z izmenljivimi nizi. Številni jeziki (Python, JavaScript, Java) uporabljajo nespremenljive nize, zato morate ustvariti novega.
Upravljanje Unicode: Tu postanejo stvari zapletene. Večbajni Unicode znaki zahtevajo pravilno obravnavo, sicer boste pokvarili kodiranje. Večina sodobnih standardnih knjižnic jezikov to obravnava pravilno, vendar če pišete nizkonivojsko kodo ali delate neposredno z znakovnimi polji, bodite previdni. Preizkusite z emojiji in ne-latinskimi pisavami za potrditev.
Pretakanje za velike datoteke: Če obračate dnevniške datoteke ali nabore podatkov velikosti gigabajtov, ne nalagajte vsega v pomnilnik. Uporabite pristop pretakanja - preberite koščke od konca, jih sproti zapisujte. Po Unicode tehničnem standardu #18, upravljanje grafemskih skupkov zahteva posebno pozornost za pravilno zaznavanje meja besedila.
Paralelizacija: Za izjemno dolge nize lahko teoretično paraleliziramo obračanje (razdelitev na koščke, obračanje vsakega, združevanje). V praksi overhead običajno ni vreden truda, razen če se ukvarjate z ogromnimi nabori podatkov in imate na voljo računske vire.
Pogosto zastavljena vprašanja
Kako lahko besedilo obrnem na spletu?
Preprosto prilepite ali vtipkajte besedilo v zgornje vnosno polje. Orodje ga samodejno obrne v realnem času - ni treba klikati nobenih gumbov. Rezultat lahko kopirate z enim klikom.
Kakšna je razlika med obračanjem besedila in obračanjem besed?
Obrat besedila (obrat znakov) obrne posamezne znake: "Hello World" → "dlroW olleH". Obrat besed ohrani vsako besedo nedotaknjeno, vendar spremeni njihov vrstni red: "Hello World" → "World Hello". To orodje izvaja obrat znakov.
Ali to orodje podpira emojije in Unicode znake?
Da. Orodje pravilno obravnava vse Unicode znake, vključno z emojiji, kitajskim/japonskim/korejskim besedilom, arabsko pisavo, posebnimi simboli in kombiniranimi znaki. Preizkusite ga z "こんにちは 🌍", da se sami prepričate.
Ali je obrnjen tekst enak zrcalnemu pisanju?
Povezana sta, a nista identična. Obrat znakov (kar to orodje počne) preprosto obrne vrstni red znakov. Zrcalno pisanje horizontalno prevrne znake, tako da izgledajo kot zrcalne slike. Za branje zrcalnega pisanja potrebujete pravo zrcalo ali horizontalno prevračanje.
Zakaj bi potreboval obrnjen tekst?
Pogosti primeri uporabe vključujejo: preverjanje palindromov, ustvarjanje preprostega kodiranja za uganke, generiranje testnih podatkov za programiranje, ustvarjanje umetniških besedilnih učinkov, poučevanje algoritmov nizov in razhroščevanje kode za obdelavo besedila.
Ali obračanje besedila dvakrat vrne originalno besedilo?
Da. Obrat besedila je lastna inverzna operacija. Če obrnete "Hello" in dobite "olleH", nato pa obrnete "olleH", spet dobite "Hello". Matematično se to imenuje involucija.
Kako hitro je obračanje besedila?
Zelo hitro - linearna časovna zahtevnost O(n), kjer je n dolžina besedila. Za tipično besedilo (nekaj odstavkov) je procesiranje trenutno. Celo za zelo dolga besedila (tisoče besed) moderne računalnike opravijo v milisekundah.
Ali lahko obrnem besedilo v Excelu ali Google Sheets?
Da, vendar potrebujete lastno funkcijo, saj ni vgrajene funkcije za obračanje. Preverite odsek s primeri kode zgoraj za implementacije v Excel VBA in drugih programskih jezikih.
Tehnični viri
-
Knuth, D. E. (1997). Umetnost računalniškega programiranja, zvezek 1: Temeljni algoritmi (3. izd.). Addison-Wesley Professional.
-
Sedgewick, R., & Wayne, K. (2011). Algoritmi (4. izd.). Addison-Wesley Professional.
-
Unicode Konzorcij. Unicode tehnični standard #18: Unicode regularni izrazi. Na voljo na: https://unicode.org/reports/tr18/
-
MDN spletna dokumentacija. Referenca metod niza. Mozilla Developer Network. Na voljo na: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String
-
Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Uvod v algoritme (3. izd.). MIT Press.