Funkce v 1C s řetězci. Nové funkce pro práci s řetězci. Funkce pro práci s řetězci StrDivide(), StrConnect()

Jako příklad toho, jak fungují funkce pro práci s 1C řetězci, bychom rádi vytvořili automatickou analýzu textu. Text převezmeme ze souboru. Výsledek analýzy se uživateli zobrazí v jakékoli podobě.

Musíme vytvořit externí handler, který nám umožní vybrat textový soubor a spustit analyzátor.

Analýza textu 1C - formulář a tlačítka

Vytvořme tedy externí zpracování: Konfigurátor/Soubor/Nové/Externí zpracování.

Přidání formuláře. Na formulář musíme umístit výběrové pole textový soubor a tlačítko analýzy.

Analýza textu 1C - tlustý klient

Umístíme na formulář běžné textové pole. Délka řádku je neomezená, protože cesta k souboru (názvy adresářů) může být významná.

Aby uživatel nemusel název souboru zadávat, ale mohl jej vybrat, povolíme v poli výběrové tlačítko.

Změníme název pole na „FileName“, název přidruženého atributu formuláře se automaticky změní na stejný.

Jako tlačítko použijeme tlačítko „Spustit“ automaticky přidané platformou (a již má připojený handler - pohodlné).

Analýza textu 1C - tenký klient

V tenkém klientovi nezávisle vytvoříme formulářový atribut „FileName“. Přetáhneme rekvizity na formu. Ve vlastnostech elementu formuláře povolíme také tlačítko vybrat.

Jako tlačítko vytvoříme příkaz „Spustit“, přiřadíme mu zpracování a přetáhneme jej do formuláře.

Analýza textu 1C - programování

První věc, kterou musíme udělat, je zpracovat kliknutí na tlačítko výběru – po kliknutí zobrazit dialog pro výběr souboru.

Přejdeme k vlastnostem našeho textového pole na formuláři (v tlustém klientovi - levým tlačítkem myši přímo na poli, v tenkém klientovi - na názvu pole v seznamu) a určíme obsluhu události pro událost "Zahájení výběru".

Uvnitř funkce handleru, kterou 1C vytvoří, když je přiřazena, napíšeme nějaký jednoduchý kód:

Nyní máme název souboru. Potřebujeme „získat“ jeho obsah a zavolat analýzu textu.

Již máme handler pro tlačítko Run. V tlustém klientovi byly tlačítko a jeho handler vytvořeny automaticky konfigurátorem 1C. V tenkém klientovi jsme jej přidali ručně.

Pojďme přidat kód do handleru, který načte soubor do řetězce:

Ohledně kódování souboru. Pokud vytvoříte objekt TextReading() bez parametru označujícího kódování, 1C se pokusí nezávisle určit kódování (podpisem Byte Order Mark - BOM, nebo zváží jeho kódování ANSI).

Požadované kódování můžete zadat přímo, například takto:
File = New ReadText(FileName, "UTF-8"); //nahraďte požadovaný název kódování

Takže ve výsledku jsme dostali:

  • Textový řetězec načtený ze souboru v proměnné "Text"
  • Procedura, ve které budeme analyzovat výsledný řetězec z proměnné nazvané „TextAnalysis()“ pomocí řetězcových funkcí 1C

ČÁST 1. METODY (26).

1.1. Základní metody (10). Nezávislé, postavené na vlastních jednoduchých algoritmech.

Page_Add() (pravo-levé přidání se zadanými znaky).

Page_Inverse () (inverze - znaky zprava doleva).

Page_Codes() (kódy znaků přes „,“ a pole s kódy)

Page_Characters() (řetězec kódů oddělený ”,” nebo z pole s kódy)

Page_ReplaceSymbols() (nahrazení některých znaků jinými).

String_FromArray() (řetězec z pole fragmentů oddělených oddělovačem)

Page_FindIn() (hledá podřetězec (včetně vpravo) se zadaným číslem výskytu).

Page_FindGr() (Vyhledání skupiny znaků obsažených v zadané znakové sadě)

Page_FindNumber() (vyhledá číslo, včetně čísla vpravo s zadané číslo výskyty)

Page_Interpret() (do pole, podle zavedené syntaxe)

1.2. Odvozovací metody (12). Ve skutečnosti se jedná o použití čtyř metod zobecněných algoritmů (viz část 2)

Page_Number() (od začátku a od konce řádku se „nebojte“ nečíselných znaků.

Page_Find() (hledá podřetězec (včetně rozlišení velkých a malých písmen a vpravo) se zadaným číslem výskytu).

Page_Replace() (vyhledávání (včetně rozlišování velkých a malých písmen a pravotočivých) a nahrazení podřetězců oddělovače.

Str_Piece() (část řetězce mezi zadanými výskyty oddělovače (vlevo nebo vpravo)).

Page_ReplacePiece() (nahradí „kus“ ve zdrojovém řetězci zadaným řetězcem).

Page_ВArray() (mezi určenými výskyty oddělovače (včetně těch vpravo a bez velkých a malých písmen).

Page_TransferBySyllables() (rozděleno na podřetězce „Stěží“, se spojovníkem).

Page_MoveByWords() (rozděleno na podřetězce „Měkce“)

Page_Cut() („Vystřihnout“ na podřetězce zadaných délek)

Str_Shorten() (nahraďte levou skupinu „zkrácených“ znaků „náhradním řetězcem“

Page_Abbreviation() (nahraďte pravou skupinu „redukovaných“ znaků „náhradním řetězcem“

Str_ShortenS() (nahraďte uprostřed skupiny „zkrácených“ znaků „náhradním řetězcem“

Page_Extend (rozšíření na zadanou délku zvýšením počtu zadaných znaků)

1.3. Podrobné metody (3). "Rozřezání" řádku s přenosem do tabulky s podrobnými informacemi.

Page_vTableIn() (do tabulky podle systému vnořených oddělovačů).

Page_vTableGr (do tabulky podle víceúrovňového filtru).

Page_inTableNumbers (v tabulce s čísly a fragmenty mezi nimi).

ČÁST 2. OBECNÉ METODY-ALGORIMY (3).

Page_Occurrence() (metody „Najít“ a „Nahradit“).

Page_Fragments() (metody "Piece", "ReplacePiece", InArray","inTableIn").

Page_Abcr() (metody "AbcrL", "AbcrP", "AbcrS", "Rozbalit".

Page_Split() (metody „Posunout po slabikách“, „Posunout podle slov“, „Vyjmout“).

ČÁST 3. UNIVERZÁLNÍ FUNKCE.

Jedná se o druh podmíněného programovacího rozhraní, které umožňuje

aplikovat několik metod na řetězec najednou. Realizováno jako

funkce se sedmi parametry ("Demo" je postaveno na této funkci):

Stránka_(Metody, Dílčí metody, Vstup, Param1, Param2, Délka_Číslo_Pozice, Další výstup)

Možnosti:

- „Metody“ – několik „kombinovaných“ a (nebo) jedna „exkluzivní“ metoda

(jednoznakové kódy nebo názvy, možné pomocí ",")

- "Podmetody" - několik "kombinovaných" a (nebo) "exkluzivních" možností

„výhradní“ metoda (jednoznakové kódy nebo názvy);

- „Vstup“ - Řetězec, pole nebo tabulka hodnot;

- “Param1” - vyhledávací řetězec, substituce, oddělovače, filtry;

- „Param2“ - náhradní řetězec nebo znaky;

- “Length_Number_Position” -Číslo, čísla přes oddělovač nebo pole s čísly;

- „Další výstup“ - Číslo nebo řetězec nebo pole nebo tabulka hodnot;

Názvy a/nebo jednoznakové kódy dílčích metod, stejně jako čísla v

(Length_Number_Position) lze v každém případě oddělit

některý z následujících oddělovačů: “, :;”.

ČÁST 4. NĚKTERÉ PŘÍKLADY.

There areNumbersInLine=(Str_FindNumber(InLine)<>Nedefinováno);

V řádku jsou čísla = (String_FindGr(Inline,"+0123456789")>0);

Existuje latinka = (Str_FindGr(InStr, Str_Interpret("lL"))>0);

Existují specifikované znaky = (Str_NfindGr(VxStr, "+to rogYu.0p9")>0);

IsNotPrinted=(Str_FindGr(InxStr, Line_Interpret("-l-L-r-R-P-Z-C"))>0);

ČÁST 5. ZÁVĚR.

Kde to bylo možné, vystačil jsem si s jedním přejezdem po čáře. Druhý průchod je obvykle ve fragmentech. Nepoužil jsem vestavěnou funkci StrNumberOccurrences().

Používají se vestavěné funkce: Left(), Right(), Middle(), StrLength()

- (umístění a získání části linky musí být „rychlé“).

NA základní schopnosti Programovací jazyky obvykle zahrnují práci s čísly a řetězci. Obvykle jsou tyto vlastnosti pevně zakódovány do kódu kompilátoru (nebo jsou implementovány „základní“ třídy programovacího jazyka).

V 1C je schopnost práce s řetězci naprogramována v samotné platformě. Dnes se podíváme na funkce práce s řetězci 1C v programech ve vestavěném jazyce 1C.

Hodnota řádku 1C

1. Začněme tím nejjednodušším. Vytvoření proměnné a přiřazení konstantní hodnoty řetězce vypadá takto v 1C:

Proměnná = "Ahoj světe!";

Pokud potřebujete zadat znak citace v konstantní hodnotě řetězce 1C, musíte jej zdvojnásobit „“

Proměnná = "Ahoj světe"!;

2. Zalomení řádku 1C lze zadat dvěma způsoby najednou. První je použití symbolu |

Proměnná = "Dobrý den,
| svět! ";

Druhým je použití systémového výčtu Symbols. Umožňuje přidat zalomení řádků 1C a další netisknutelné znaky, jako je TAB.

Proměnná = "Ahoj" + Symboly.PS + "mír!";

3. Konfigurace v 1C lze vyvíjet nejen pro jeden jazyk (ruštinu, angličtinu nebo jiný) - ale současně pro několik jazyků. V tomto případě je aktuálně používaný jazyk vybrán ve spodní části okna 1C.

Seznam jazyků se nachází v konfiguračním okně ve větvi Obecné/Jazyky. Každý jazyk má krátký identifikátor jako např ru nebo Ing.

Je jasné, že při programování takové konfigurace mohou být 1C linky i vícejazyčné. K tomu je možné vytvořit takový 1C řádek zadáním skrz; možnosti podle identifikátoru jazyka:

Proměnná = "ru=""Ahoj světe! ""; en=""Ahoj světe! """;

Pokud použijete takto vytvořenou čáru 1C jako obvykle, bude to, co je v ní napsáno. Aby jej systém rozdělil na dvě možnosti a použil požadovanou, musíte použít funkci НStr():

//správné pro dvojjazyčné konfigurace
Report(NStr(Proměnná));

Rekvizity s vedením typu 1C

Atribut je pole v adresáři/dokumentu 1C. Od proměnné v programu v jazyce 1C se liší tím, že u atributu je přesně uveden její typ (číslo, řetězec 1C atd.). Pokud si potřebujete osvěžit paměť, co je to rekvizita, podívejte se na lekci.

Pokud zadáte typ atributu - řádek 1C, musíte dodatečně zadat parametry.

Řádky 1C mají neomezenou délku (označuje se jako délka = 0) a omezenou délku s uvedením přesného počtu znaků. 1C řádky neomezené délky jsou uloženy v samostatném SQL tabulka, takže jejich použití je méně produktivní než omezené.

Proto má použití 1C strun neomezené délky svá omezení – není možné je použít všude. Není například povoleno jako číslo dokumentu, referenční kód nebo měření.

Práce se strunami 1C

Platforma 1C má několik vestavěných funkcí pro práci se strunami.

  • AbbrLP („Neuvěřitelné, ale pravdivé!“)
    Odstraní nadbytečné mezery z řádku 1C. Lze také použít k převodu libovolných typů na řetězec 1C (například čísla).
  • Proměnná = "Vasya" + AbbrLP(" plus") + "Olya"; //bude "Vasya plus Olya"
    Příklad sečtení několika hodnot řetězce 1C. Výsledkem bude jeden řádek 1C.
  • Proměnná = Lev("Hudba", 2); //bude "Mu"
    Proměnná = Medium("Hudba", 2, 2); //bude tam "hrozba"
    Proměnná = Rights("Hudba", 2); //bude "ka"
    Různé možnosti pro získání podřetězce z řetězce 1C.
  • Proměnná = Najít("Hudba", "zy"); //budou 3
    Vyhledejte podřetězec v řetězci 1C počínaje znakem 1.
  • Proměnná = StrLength("Hudba"); //bude 6
    Vrátí počet znaků na řádku 1C.
  • Report("Ahoj") //v okně zpráv v dolní části okna 1C
    Alert("Ahoj") //vyskakovací dialogové okno
    Status("Ahoj") //v řádku zobrazení stavu vlevo dole
    .

Přiveďte objekty na řádek 1C

Jak víte, v současnosti je nejpopulárnějším formátem pro výměnu strukturovaných informací XML. Dokonce Nejnovější verze SLEČNA Office Word a Excel ukládají soubory v tomto formátu (docx a xlsx změňte příponu na zip, otevřete v archivátoru).

Platforma 1C pro výměnu dat poskytuje několik možností, z nichž hlavní je také XML.

1. Nejjednodušší metodou je použití funkce Abbreviation() nebo String(). V těle požadavku můžete použít funkci REPRESENTATION(). Výsledek jejich akce je stejný – vygenerují pro uživatele řetězcovou reprezentaci libovolného 1C objektu.

U adresáře to bude ve výchozím nastavení jeho název. U dokumentu – název dokumentu, číslo a datum.

2. Jakýkoli objekt 1C (s omezeními) lze převést do XML a naopak. Proces převodu se nazývá serializace.

StringViewXml = XMLString(Value); //získání XML z hodnoty 1C
Hodnota1C = XMLValue(Type("DirectoryLink.Nomenclature"),TypStringXml); //získáte hodnotu 1C z řetězce XML, musíte zadat typ 1C, který má být přijat

3. Existuje vlastní způsob platformy 1C, jak převést jakýkoli objekt 1C na řetězec. To migrovalo z verze 1C 7.7. Tomuto formátu nerozumí jiné programy, ale ostatní 1C mu rozumí, což usnadňuje jeho použití pro výměnu mezi databázemi 1C.

Řádek = ValueInRowInt(Value1C); //získáme řetězec 1C z hodnoty 1C
ValueVFile("C:\MyFile.txt", Hodnota1C); //další možnost, z hodnoty 1C získáme soubor s uloženým řetězcem
Hodnota1C = ValueFromStringInt(String); //zpět z řádku 1C
Hodnota1C = ValueFile("C:\MyFile.txt"); //zpět ze souboru

Úprava 1C řádků na formuláři

Kromě práce s 1C řetězci v programu v jazyce 1C bych si samozřejmě přál, aby je uživatel mohl upravovat. K tomu existuje několik možností:

1. Nejjednodušší způsob je požádat o vstup linky 1C na vyžádání. Tato metoda se používá při výuce programování 1C v životě se používá mnohem méně často (ale používá se!).

Proměnná = "";
Řádek = EnterValue(Proměnná, "Zadejte celé jméno");

2. Pro zobrazení detailů objektu 1C (adresář/dokument) nebo detailů formuláře (viz) se nejčastěji používá vstupní pole. Toto je nejběžnější nástroj v 1C pro uživatele pro práci s editačními poli.

3. Možnosti vstupního pole lze rozšířit (viz vlastnosti vstupního pole, klikněte pravým tlačítkem myši na něm, další podrobnosti):

  • Zaškrtávací políčko Režim víceřádkových úprav
  • Zaškrtávací políčko Pokročilé úpravy (dostupné, pokud je zaškrtnuté předchozí políčko)
  • Zaškrtávací políčko Režim hesla (viz).

4. Pokud by vám nestačily všechny možnosti vstupního pole, je zde vestavěný editor. Chcete-li jej přidat do formuláře, musíte přidat pole do ovládací nabídky Formulář/Vložit textový dokument. V jeho vlastnostech můžete určit jeho provozní režim – vlastnost Extension.

Pole textového dokumentu nelze přímo přiřadit k datům. Je nutné napsat funkci do obsluhy události OnOpen() formuláře (viz):

Form Elements.ElementNameTextDocumentField.SetText(StringValue); //zde ValueString je text přijatý například z atributu

A v obslužné rutině ukládání - například v tlačítku Uložit - přidejte uložení:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ValueŘádek zde je atribut, kam uložíme hodnotu

5. Ve verzi 1C 8.2.11, in kontrolované formy, objevil se novou příležitost 1C čárová reprezentace – Formátované pole dokumentu.


Podobně jako pole textového dokumentu si jej musíte nastavit při otevírání a zapsat si jej při ukládání sami pomocí programu.

  • V objektu 1C, jehož formulář vytváříme (adresář, dokument, zpracování atd.) - přidejte atribut s typem Value Storage
  • Ve funkci OnReadOnServer() nastavíme text z atributu

    //zde Atribut je přidaný atribut objektu 1C
    //zde FormattedDocument je název pole ve formuláři pro úpravy
    &Na serveru

    FormattedDocument = CurrentObject.Attributes.Get();
    EndProcedure

  • Ve funkci BeforeWritingOnServer() nebo pomocí tlačítka napíšeme text z pole

    &Na serveru
    Postup při ReadingOnServer(CurrentObject)
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    EndProcedure

Řetězec je jedním z primitivních datových typů v systémech 1C:Enterprise 8 proměnných s typem čára obsahovat text.

Zadejte hodnoty proměnných čára jsou uzavřeny ve dvojitých uvozovkách. Více proměnných tohoto typu lze složit.

Per1 = "Slovo 1" ;
Per2 = "Slovo 2" ;
Per3 = Per1 + " " + Per2;

Nakonec Per3 bude znamenat" Slovo 1 Slovo 2″.

Systémy 1C:Enterprise 8 navíc poskytují funkce pro práci s řetězci. Podívejme se na ty hlavní:

EnterString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — funkce je navržena tak, aby zobrazila dialogové okno, ve kterém může uživatel zadat hodnotu proměnné typu Čára. Parametr <Строка> je povinný a obsahuje název proměnné, do které se zadaný řetězec zapíše. Parametr <Подсказка> volitelné - toto je název dialogového okna. Parametr <Длина> volitelné, zobrazuje maximální délku vstupního řetězce. Výchozí hodnota je nula, což znamená neomezenou délku. Parametr <Многострочность> volitelný. Určuje vstupní režim víceřádkový text: True—zadejte víceřádkový text s oddělovači řádků; False - zadejte jednoduchý řetězec.

Můžete zadat řetězec, pokud znáte kód znaku v Unicode:

Symbol(<КодСимвола>) — kód se zadává jako číslo.

Písmeno= Symbol(1103) ; // Já

K dispozici je také inverzní funkce, která vám umožní zjistit kód symbolu.

Kód symbolu(<Строка>, <НомерСимвола>) — vrátí číslo Unicode zadaného znaku jako číslo.

Funkce převodu malých a velkých písmen:

VReg(<Строка>) — Převede všechny znaky v řetězci na velká písmena.

NReg(<Строка>) — Převede všechny znaky v řetězci na malá písmena.

TReg(<Строка>) — převede všechny znaky v řetězci na velká a malá písmena. To znamená, že první písmena ve všech slovech se převedou na velká písmena a zbývající písmena se převedou na malá.

Funkce pro vyhledávání a nahrazování znaků v řetězci:

Nalézt(<Строка>, <ПодстрокаПоиска>) — vyhledá číslo znaku výskytu hledaného podřetězce. Například:

Najít ("String" , "oka" ) ; // 4

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — vyhledá číslo znaku výskytu hledaného podřetězce, číslo výskytu je uvedeno v odpovídajícím parametru. V tomto případě vyhledávání začíná znakem, jehož číslo je uvedeno v parametru Počáteční pozice. Vyhledávání je možné od začátku nebo konce řetězce. Například:

Počet4 výskytů = Str Najít ( "obrana", "o" ,Směr hledání. Od začátku, 1, 4); // 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) – najde všechny výskyty hledaného podřetězce ve zdrojovém řetězci a nahradí jej náhradním podřetězcem.

StrReplace ("String" , "oka" , "" ); // Stránka

Prázdný řádek (<Строка>) – zkontroluje, zda řetězec neobsahuje významné znaky. Pokud nejsou žádné nebo žádné významné znaky, vrátí se hodnota Skutečný. V opačném případě - Lhát.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – Vypočítá počet výskytů hledaného podřetězce ve zdrojovém řetězci.

StrNumberOccurrences ( "Studuj, studuj a zase studuj", "studium", "");

// 3<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — StrTemplate( dosadí parametry do řetězce číslem. Řádek musí obsahovat substituční značky ve tvaru: “%1..%N”. Číslování značek začíná od 1. Pokud je hodnota parametru Nedefinováno

, je nahrazen prázdný řetězec. StrTemplate (, "1" , "2" ) ; "Parametr 1 = %1, Parametr 2 = %2"

// Parametr 1= 1, Parametr 2 = 2

Funkce převodu řetězců:<Строка>, <ЧислоСимволов>) Lev(

– vrátí první znaky řetězce.<Строка>, <ЧислоСимволов>) Že jo(

– vrátí poslední znaky řetězce.<Строка>, <НачальныйНомер>, <ЧислоСимволов>) Středa(<ЧислоСимволов>– vrátí řetězec délky<НачальныйНомер>.

, počínaje symbolem<Строка>) AbbrL(

ořízne nevýznamné znaky vlevo od prvního významného znaku v řetězci.<Строка>) Zkratka(

— ořízne nevýznamné znaky vpravo od posledního významného znaku v řádku.<Строка>) AbbrLP(

– ořízne nevýznamné znaky vlevo od prvního významného znaku v řádku a vpravo od posledního významného znaku v řádku.<Строка>, <НомерСтроки>) StrGetString(

– Získá víceřádkový řetězec podle čísla.

Další funkce:<Строка>) StrLength(

– vrátí počet znaků v řetězci.<Строка>) StrNumberRow(

– vrátí počet řádků ve víceřádkovém řetězci. Řádek je považován za nový, pokud je od předchozího oddělen znakem nového řádku.<Строка1>, <Строка2> ) StrCompare( – porovnává dva řetězce bez ohledu na velikost písmen. Funkce funguje podobně jako objekt Srovnání hodnot

  • . Vrácení:
  • 1 - pokud je první řádek větší než druhý
  • -1 - pokud je druhý řádek větší než první

0 - pokud jsou řetězce stejné

Existuje několik mechanismů pro práci s řetězci v dotazech 1C. Nejprve lze přidat řádky. Za druhé, můžete vzít podřetězec z řetězce. Za třetí, řetězce lze porovnávat, a to i podle vzoru. To je asi vše, co se dá se strunami dělat.

Přidání řetězce

K přidání řádků do dotazu se používá operace „+“. Můžete přidat pouze řetězce omezené délky.

SELECT "Název: " + Protistrany Název AS Sloupec 1 Z adresáře Protistrany AS Protistrany WHERE Protistrany

Funkce podřetězec

SUBSTRING(<Строка>, <НачальнаяПозиция>, <Длина>)

Analoga funkce Environment() z objektového modelu. Funkci Substring() lze použít na data řetězce a umožňuje vybrat fragment <Строки> , počínaje číslem znaku <НачальнаяПозиция> (znaky v řádku jsou číslovány od 1) a délka <Длина> postavy. Výsledek výpočtu funkce má typ řetězce s proměnnou délkou a délka bude považována za neomezenou, jestliže <Строка> má neomezenou délku a parametry <Длина> není konstantní nebo větší než 1024.

Pokud je délka řetězce menší než zadaná v druhém parametru, funkce vrátí prázdný řetězec.

Pozornost! Použití funkce SUBSTRING() k převodu řetězců neomezené délky na řetězce omezené délky se nedoporučuje. Místo toho je lepší použít operátor přetypování EXPRESS().

Funkce podobná

Pokud se potřebujeme ujistit, že atribut řetězce splňuje určitá kritéria, porovnáme jej:

VYBERTE protistrany Název AS Sloupec 1 Z Adresář Protistrany AS Protistrany WHERE Protistrany = "Gazprom".

Ale co když potřebujete jemnější srovnání? Nejen rovnost nebo nerovnost, ale podobnost s určitým vzorem? Přesně k tomu byla vytvořena funkce PODOBNÁ.

LIKE — Operátor pro kontrolu podobnosti řetězce se vzorem. Analog LIKE v SQL.

Operátor SIMILAR umožňuje porovnat hodnotu výrazu zadaného vlevo od něj s řetězcem vzoru zadaným vpravo. Hodnota výrazu musí být typu string. Pokud se hodnota výrazu shoduje se vzorem, výsledek operátoru bude TRUE, jinak bude FALSE.

Následující znaky v řetězci šablony jsou servisní znaky a mají jiný význam než znak řetězce:

  • % (procenta): sekvence obsahující libovolný počet libovolných znaků;
  • _ (podtržítko): jeden libovolný znak;
  • […] (V hranaté závorky jeden nebo více znaků): jakýkoli jednotlivý znak uvedený v hranatých závorkách. Výčet může obsahovat rozsahy, například a-z, což znamená libovolný znak zahrnutý v rozsahu, včetně konců rozsahu;
  • [^...] (v hranatých závorkách znaménko negace následované jedním nebo více znaky): jakýkoli jednotlivý znak jiný než ty, které jsou uvedeny za znaménkem negace.

Jakýkoli jiný symbol znamená sám sebe a nenese žádnou další zátěž. Pokud je třeba jeden z uvedených znaků zapsat jako samotný, pak mu musí předcházet<Спецсимвол>. Moje maličkost<Спецсимвол>(jakýkoli vhodný symbol) je definován ve stejném příkazu za klíčové slovo SPECIÁLNÍ SYMBOL.