Vidíte historickú verziu tejto stránky. Pozrite si aktuálnu verziu.

Porovnať s aktuálnou verziou Zobraziť históriu stránky

« Predchádzajúce Verzia 26 Ďalej »

Funkcia %RxFind




Funkcia

Funkcia nájde vo vstupnom texte prvý substring zodpovedajúci zadanému regulárnemu výrazu a vráti index, na ktorom sa daný substring začína.

Deklarácia
INT %RxFind(
   TEXT in text,
   TEXT in regExp,
   INT	in from := 0,
   INT	out endIndex := 0
 )
Parametre
textText, ktorý bude prehľadaný.
regExpRegulárny výraz, ktorý bude hľadaný vo vstupnom parametri text.
fromIndex, od ktorého bude prehľadávaný vstupný parameter text (nepovinný vstupný internet).
endIndexIndex, na ktorom končí substring zodpovedajúci zadanému regulárnemu výrazu (nepovinný výstupný parameter).
Príklad

Funkcia vráti index, na ktorom začína substring zodpovedajúci zadanému regulárnemu výrazu. Voliteľný je parameter endIndex. Ak je tento parameter zadaný, po volaní funkcie je jeho hodnota rovná koncovému indexu substringu, ktorý vyhovuje zadanému regulárnemu výrazu.

Ak je hľadanie neúspešné, alebo ak je parameter from presahujúci celkovú dĺžku vstupného textu, funkcia vráti hodnotu 0.

Ak parameter regExp nie je platný regulárny výraz, funkcia vráti hodnotu -1.

Ak je niektorý zo vstupných parameterov neplatný, funkcia vráti nedefinovanú hodnotu.

 


;v stringu "text nejaky text" sa pokúšame sa nájsť začiatočný index výrazu "nejaky"
%RxFind("text nejaky text", "nejaky")				;vráti hodnotu 6, pretože výraz "nejaky" sa nachádza na pozícii 6 v zadanom stringu

;v stringu "text nejaky text" sa pokúšame nájsť výraz "nejaky" na začiatku stringu
%RxFind("text nejaky text", "^nejaky")				;vráti hodnotu 0, pretože výraz "nejaky" sa nenáchádza na začiatku zadaného stringu

;v stringu "text nejaky text" sa pokúšame nájsť výraz "text" na začiatku stringu
%RxFind("text nejaky text", "^text")				;vráti hodnotu 1, pretože výraz "text" sa náchádza na začiatku zadaného stringu (začína na pozícii 1)

;v stringu "text nejaky text" sa pokúšame nájsť výraz "text" na konci stringu
%RxFind("text nejaky text", "text$")				;vráti hodnotu 13, pretože výraz "text" sa náchádza na konci zadaného stringu (začína na pozícii 13)

;v stringu "text nejaky text" sa pokúšame nájsť výraz "xt" alebo výraz "ne"
%RxFind("text nejaky text", "xt | ne")				;vráti hodnotu 3, pretože výraz "xt" bol nájdený ako prvý a začína na pozícii 3

;v stringu "text nejaky text" sa snažíme zistiť, či začína výrazom "nejaky", alebo končí výrazom "text"
%RxFind("text nejaky text", "^nejaky | text$")				;vráti hodnotu 12, pretože zadaný string končí výrazom "text" (a tento výraz začína na pozícii 12)

;v stringu "text nejaky text" sa snažíme zistiť, či obsahuje znaky v rozsahu a-d
%RxFind("text nejaky text", "[a-d]")				;vráti hodnotu 9, pretože na tejto pozícii sa nachádza znak v rozsahu a-d.

;v stringu "text nejaky text" sa snažíme zistiť, či obsahuje znaky okrem znakov v rozsahu a-d
%RxFind("text nejaky text", "[^a-d]")				;vráti hodnotu 9, pretože na tejto pozícii sa nachádza znak v rozsahu a-d.



%RxFind("text nejaky text", "[a-z]+", 1)			;vráti hodnotu 1
%RxFind("123text nejaky text", "[a-z]+", 1)			;vráti hodnotu 4
%RxFind("text nejaky text", "[a-z]+", 5, _last)		;vráti hodnotu 6, _last = 11
%RxFind("text nejaky text", "[a-z]+", 20, _last)	;vráti hodnotu -1, _last = -1
%RxFind("text nejaky text", "", 20, _last)			;vráti nedefinovanú hodnotu (dĺžka regulárneho výrazu je 0), _last = 0

Príklady regulárnych výrazov

Regulárny výrazVýznam
výrazHľadá zadaný výraz v stringu.
^výrazHľadá zadaný výraz na začiatku stringu.
výraz$Hľadá zadaný výraz na konci stringu.
výraz1 | výraz2Hľadá jeden zo zadaných výrazov.
^výraz | výraz$Hľadá výraz na začiatku alebo na konci stringu.
[a-d]Hľadá znaky v zadanom rozsahu.
[^a-d]Hľadá všetky znaky okrem znakov v zadanom rozsahu (v tomto prípade všetky znaky okrem a,b,c,d).
a{10}"Hľadá sekvenciu 10 znakov 'a' idúcich po sebe.
oper.torHľadá slovo oper.tor, kde sa namiesto . nachádza práve jeden neznámy znak (nájde slová ako operátor, operator, operxtor, ...).
oper.*torHľadá slovo oper.*tor, kde sa namiesto .* nachádza niekoľko neznámych znakov (nájde slová ako operátor, operator, operaaaaaator, ...).
  • Žiadne štítky