Expresii regulate în comandantul total (sau căutare după șabloane)

Astăzi am dat peste faptul că se pare că pe Internet nu sunt atât de multe informații despre expresii regulate pentru Total Commander. Mai exact, ar putea fi, dar este extrem de dificil să o găsiți. Da, și pe lângă toate subtilitățile se spune și "mestecă". Și pentru noi, oamenii care trăiesc foarte repede, fiecare minut este prețios. Și înțelegeți ce ne va ajuta și ce nu, foarte mult timp. În general, am decis să colectez aici toate informațiile pe care le-am găsit pe membrii echipei Total Commander. În primul rând, vă voi arăta ceea ce este scris în manuale (referința oficială) de la dezvoltatorii înșiși, dar cu traducerea rusă! =)

Ajutor privind utilizarea expresiilor regulate în Total Commander (manual)

Expresii regulate

Expresiile regulate sunt un instrument de căutare foarte puternic. Acestea vă permit să căutați combinații complexe de cuvinte. Expresiile regulate sunt destinate în special profesioniștilor, dar pot fi folosiți și pentru începători în căutarea anumitor documente (a se vedea exemplele de mai jos).

Total Commander suportă expresii regulate în următoarele funcții:
- Comenzi → Căutați fișiere. Căutarea vă permite să găsiți un fișier după numele fișierului și / sau conținutul fișierului
- Listerul
- În instrumentul de redenumire a grupului
- În dialogul de selectare

Expresiile regulate constau din simboluri ordinare și simboluri speciale, așa-numitele meta-simboluri. Următoarele caractere sunt meta-caractere sau pot fi numite părțile inițiale ale meta-caracterelor:
. \ () [] <> ^ $ + *? (numai în clasele de caractere: -)

Caracterele obișnuite

Dacă scrieți pentru a căuta numai caractere obișnuite, cum ar fi „test“, atunci căutarea va găsi fișierul pe care doriți cu aceste personaje, merge într-un mod ordonat, ca „t → e → cu → T“. Notă: Această interogare găsește „test“ oriunde în numele fișierului și / sau o linie de text.

Porniți secvența

Bara de spate \ pornește secvența Escape. Exemple de secvențe de control:
\ t - Opriți tabela
\ xnn - caracterul cu codul hexazecimal "nn". Exemplu: \ x20 este un spațiu. Setul de caractere charmap.exe (dacă este setat) afișează codurile de caractere ale majorității caracterelor speciale. Puteți utiliza acest tabel definitiv pentru a converti de la zecimal la hexazecimal.
\ x - Unicode cu cod hexazecimal NN. Rețineți că Total Commander utilizează acum Unicode pentru numele fișierelor, deci trebuie să utilizați această denumire pentru alte caractere decât latină. De exemplu, atunci când căutați caractere rusești.
- [- Bracket pătrate stânga. Deoarece paranteze sunt meta-caractere, dacă doriți să găsiți în textul de suport aveți nevoie pentru a pune în fața ei (paranteze) backslash: \ [
\\ - Afișează o coloană inversă.
\. - Găsiți o perioadă (Numai "." Găsește orice caracter, vezi mai jos).

Clase simbolice

Simbolurile din parantezele pătrate vă permit să construiți o clasă de caractere. Total Commander va găsi unul dintre simbolurile acestei clase. O liniuță vă permite să definiți grupuri, de exemplu, [a-z].
^ - La inceput gaseste toate caracterele cu exceptia exceptiilor listate.

Meta caractere

Iată o listă cu cele mai importante meta-caractere:
^ - Startul liniei
$ - Sfârșitul liniei
. - Orice personaj
\ w - litere, numere sau subliniere _
\ W este opusul \ w
\ d - numărul
\ D - nu este o cifră
\ s - separatoare de cuvinte (spațiu, fila, etc.)
\ S - cuvinte fără separatoare
\ b - găsește limita cuvântului (combinații \ s și \ S)
\ B este opusul \ b

Iteratoarele sunt folosite pentru a repeta caracterul sau expresia din partea stângă a iteratorului.
* - Zero sau de mai multe ori undeva
+ - De unul sau de mai multe ori undeva
exact n ori undeva
de minimum n ori undeva
minimă n și m ori maximă undeva

Toți acești operatori sunt "lacomi", ceea ce înseamnă că ei iau cât mai multe personaje pe care le pot obține. Introduceți semnul întrebării. după ce operatorul le face "nu lacomi", adică este nevoie de exact cât de multe caractere este necesar.
Exemplu: dacă aplicați „b +“ la linia de țintă „abbbbc“, căutarea va găsi „bbbb“, dar dacă aplicăm, atunci căutarea este doar „b“, „b +?“.

alternative

Alternativele sunt închise în paranteze și sunt separate printr-o linie verticală. Exemplu: (Ioan | Iacov | Petru) găsește unul dintre numele Ioan, Iacov sau Petru.

Subexpresiile pentru funcția de căutare + înlocuiesc "

Elementele de text din paranteze sunt considerate ca subexpresii. Exemplu: Pentru a schimba numele și interpretează numele în fișierul .mp3 atunci când acestea sunt separate printr-o liniuță (titlu - Interpretator.mp3), acest lucru poate fi rezolvată după cum urmează:
Căutați: (. *) - (. *) \. Mp3
Înlocuiți cu: $ 2 - $ 1.mp3
Aici $ 1 înseamnă textul din primele paranteze, iar 2 $ înseamnă textul din parantezele a doua.

\ n - Caută subexpresia n în momente diferite ca urmare a unei căutări.
Exemplu: (. +) \ 1+ găsește, de exemplu, abab (unde primul ab este găsit cu. + Și al doilea prin: \ 1+)

modificatori

Modificatorii sunt folosiți pentru a modifica comportamentul expresiilor regulate.

(? i) - Ignorați literele majuscule / minuscule. În Total Commander, acest lucru este implicit pentru numele de fișiere.
(a-i) - sensibilitate la caz.
(? g) - Activarea modului lacom (activat implicit)
(a-g) Oprirea modului "lacom", astfel încât "+" înseamnă același lucru ca "+".

Alți modificatori nu sunt relevanți pentru Total Commander, deoarece programul acceptă căutarea după expresii regulate NUMAI O LINE.

Total Commander folosește bibliotecile gratuite Delphi "TRegExpr" de la Andrey V. Sorokin
Unele dintre explicațiile de mai sus sunt preluate din fișierul de ajutor pentru această bibliotecă.

Câteva cuvinte de la mine

Dacă doriți să căutați fișiere (după numele de fișier) în fișierul definiție (în cazul meu am nevoie de PHP și fișiere js), iată o expresie care ma ajutat: Ie se pare că nu s-au ajutat acolo brațe. Trebuie doar să separați fiecare expresie cu un punct și virgulă și apoi totul se va întoarce. În general, pentru IT toate intuitiv! =)