Engleză: IN STRing = în șir de caractere; eXpression = expresie
instrx ( textul_în_care_se_caută , expresie_regulată )
instrx ( textul_în_care_se_caută , expresie_regulată , valoare_start )
Întoarce un număr_întreg.
Verifică dacă expresia_regulată se potrivește în textul_în_care_se_caută. Dacă se potrivește, funcția întoarce poziția (indexul) unde s-a potrivit expresia_regulată. În cazul în care nu se potrivește nicăieri, funcția întoarce valoarea 0.
În mod opțional se poate specifica o valoare pentru valoare_start, acesta reprezentând poziția de unde se dorește începerea căutării, unde 1 este primul caracter din textul_în_care_se_caută, 2 este al doilea caracter ș.a.m.d. În cazul în care poziția furnizată este negativă, atunci căutarea va începe de la caracterul specificat numărând de la sfârșitul textului, unde -1 este ultimul caracter, -2 este penultimul caracter, -3 este al treilea caracter din coadă ș.a.m.d.
Indiferent poziția furnizată, căutarea se va face întotdeauna de la ce mai mică poziție către cea mai mare, adică dinspre începutul textului spre sfârșitul lui.
Șirurile de caractere încep de la poziția 1.
print instrx("Ana are mere", "[Aa]re") print instrx("Poveste adevărată", "[Vv]", 4)
va afișa
5 12
Funcția instrx poate fi utilă în diverse situații. În exemplul de mai jos, funcția estenumar întoarce valoarea adevărat dacă șirul de caractere conține un număr și întoarce fals dacă nu.
function estenumar(s$) # întoarce adevărat dacă este un număr, fals dacă nu este un număr # în loc de virgulă se folosește punctul return instrx(s$,"^-?\d+(\.\d+)?$") <> 0 end function
În mod implicit, natura expresiilor regulate este “lacomă”. Acest comportament poate fi modificat folosind instrucțiunea RegexMinimal.
0.9.6.56 | Adăugată în acestă versiune |
1.99.99.53 | S-a adăugat posibilitatea specificării unei poziții negative |