6.16. Caracterele speciale
6.16.1. Metacaracterul. (Dot)
În funcție de context, simbolul "." are mai multe sensuri. lin În partea stângă a comenzii de substituție și atunci când căutați cu construcția "/ ./", simbolul "." înseamnă orice caracter unic. Astfel, ca rezultat al căutării, vor fi găsite linii de text care conțin caracterele "x" și "y", printre care se numără orice simbol, de exemplu:
Simbolul utilizat pentru a indica numărul liniei indică linia curentă.
Exemple. Simbolul "a" este înlocuit cu simbolul "," în rândul următor celui curent. Simbolul scris în partea dreaptă a comenzii de înlocuire "s" nu are nici un înțeles special; înlocuirea simbolului "," cu simbolul. "" în liniile de la 1 la 5 inclusiv.
Echipa. ilustrează toate valorile simbolului ".". Primul. "" în comandă - acesta este numărul liniei curente, al doilea "." acesta este un metacaracter care se potrivește cu orice caracter al liniei date, al treilea "." - acesta este punctul real în echipa de înlocuire.
O astfel de comandă, aplicată, de exemplu, unei linii: dă rezultatul:
6.16.2. Metacharacter \ (loviți înapoi)
Partea backslash (sau backslash) suprascrie valoarea specială pe care o poate avea următorul caracter, în special "\". înseamnă un punct, nu "orice caracter". Exemple. înlocuirea simbolului "." la simbolul "?"; căutați linii care conțin ".pp"; căutați caracterul ""; căutați caracterul "/"; Ștergeți secvența de caractere "" din linia curentă.
Orice caracter poate fi folosit pentru a separa câmpurile din comanda "s", și nu numai o linie fracționată (totuși, o linie fracțională este necesară pentru căutarea contextuală). De exemplu, dacă șirul conține deja multe caractere de caractere fracționate, ca în șirul de caractere, puteți folosi caracterul ":" (colon) ca delimitatori. Pentru a șterge toate simbolurile unui accident fracționat, utilizați comanda:
Dacă utilizați tastele "#" și "@" pentru a șterge caracterele și pentru a șterge linii, trebuie să le introduceți în formulele "\ #" și "\ @" (acest lucru nu se aplică numai lucrului cu ed).
Dacă textul este introdus utilizând una dintre comenzile "a", "i" sau "c", atunci simbolul inversat nu este special și trebuie doar să apăsați o dată această tastă pentru fiecare backslash.
6.16.3. Metasymbol $ (semn de bani)
În funcție de modul în care se utilizează semnul unității monetare ($), poate indica sfârșitul fișierului sau sfârșitul liniei. Când se specifică un interval (de la linia 1 la linia $), este clar că acesta este sfârșitul fișierului. "1, $ p" va imprima întregul fișier. Dar intrarea "s / $ /./p" indică faptul că punctul va fi plasat la sfârșitul liniei curente.
În comanda: primul caracter "$" înseamnă ultima linie a fișierului, al doilea indică sfârșitul acestei linii, iar al treilea este de fapt un simbol al unității monetare care este adăugată la linia specificată.
6.16.4. Metacaracterul (negarea)
Metacaracterul "^" este utilizat în același mod ca și metacaracterul "$", cu excepția faptului că indică începutul șirului, și nu sfârșitul.
Exemple. căutați o linie care începe cu cuvântul "timp"; puneți un spațiu la începutul liniei curente.
Metacaractele pot fi combinate. De exemplu, pentru a găsi o linie care conține numai caracterele "pp", puteți folosi comanda: / ^.pp$/
6.16.5. Metacaracter * (asterisc)
Metacaracterul "*" înseamnă că caracterul care îl urmează poate fi repetat de un număr arbitrar de ori.
Dacă textul are un număr mare de spații, le puteți comprima, de exemplu: Ca urmare a comenzii: get:
Dacă combinați punctul u *, atunci puteți potrivi toate simbolurile. Cu această combinație, puteți înlocui, de exemplu, toate caracterele din ultima parte a liniei: ed memorează automat ultima linie de caractere din modelul de căutare sau textul înlocuit. Totuși, trebuie să spuneți că trebuie să repetați înlocuitorul folosind semnul "%". Semnul "%" vă permite să faceți aceeași substituire în mai multe rânduri fără a utiliza o înlocuire globală. De exemplu, înlocuiți cuvântul bani cu aur, repetați ultima modificare în liniile 1 la 3:
ed memorează automat cuvântul bani, astfel încât șirul nu va fi repetat între primele două delimitatoare. Semnul "%" spune ed - utilizați ultimul șablon pentru înlocuire (aur).
6.16.6. Metacaracterele [] (paranteze pătrate)
Metacaractele "[]" vă permit să definiți un subset de caractere pe care trebuie să le recunoașteți atunci când efectuați o operație de căutare sau de substituire. O înregistrare a unui grup de caractere încadrate în paranteze pătrate înseamnă: "orice caracter unic din specificat". De exemplu, dacă "[0123456789]", aceasta ar însemna "orice cifră". Este posibil să scrieți și să fie mai scurtă: "[0-9]". Înregistrarea a două caractere separate printr-un semn minus înseamnă specificarea unui interval în
secvența lexicografică a simbolurilor. Astfel, înregistrarea "[AZ]" înseamnă: "literă rusă superioară", iar intrarea: "[a-z] [a-z0-9] *" înseamnă o succesiune de litere și cifre latine începând cu o literă.
Indicația de la începutul clasei caracterului "^" înseamnă "nici unul dintre următoarele caractere". De exemplu: înseamnă "orice caracter, cu excepția unei cifre".
Exemple. ștergeți toate cifrele de la începutul fiecărei linii; căutați prima linie care nu începe cu un spațiu sau un caracter tab.
În interiorul clasei de caractere pot fi prezente orice caractere și pentru a evita confuzia, simbolurile din parantezele pătrate nu au în principiu un înțeles special. De exemplu, pentru a găsi caractere speciale, puteți folosi comanda: Inside "[.]" Simbolul "["] nu este special. Pentru a include caracterul "]" într-o clasă de caractere, trebuie să îl specificați mai întâi.
6.16.7. metacaractere (Ampersand)
Simbolul "" este utilizat în principal pentru a scurta textul de intrare.
Să presupunem că există un șir: și doriți să-l convertiți la un șir: desigur, puteți folosi comanda pentru aceasta: cu toate acestea, cerința de a indica în mod repetat cuvântul "TIME" pare nerezonabilă. Pentru a evita această repetare, se folosește simbolul "". În partea dreaptă a comenzii de substituție, ampersand înseamnă "text găsit", astfel încât să puteți introduce comanda: unde "" va însemna "TIME". Desigur, în acest exemplu, economiile vor fi nesemnificative, dar dacă numărul de caractere este mare sau este ceva de genul ". *", Care corespunde unei bucăți mari de text, sunt salvate multe caractere tipărite. Probabilitatea de a face o eroare la introducerea unui text de înlocuire este, de asemenea, redusă. De exemplu, pentru a suporta un șir, indiferent de lungimea sa, puteți folosi comanda:
Ampersend poate apărea în partea dreaptă a echipei de mai multe ori. Comanda: construiți un șir: și comanda: convertește șirul original la:
Pentru a obține caracterul real "", utilizați o coloană inversă pentru a anula valoarea sa specială. Comandă: înlocuiți cuvântul "ampersand" cu caracterul "". Rețineți că simbolul "" este special numai în partea dreaptă a comenzii, în partea stângă nu are nici un sens special.