![]() |
Personal Backup Version 5.9 |
© 2001 − 2018, Dr. Jürgen Rathlev |
Reguláris kifejezések a programban könyvtár és fájlnevek szűrése valamint a kiterjesztések. Fontolja meg a különböző alapértelmezett beállítások:
A felhasználó módosító / i megváltoztathatja ezt a müködést. p>
Personal Backup 5 végrehajtja a Unicode változattatást TRegExpr.
A reguláris kifejezések szintaxisa írja le a szerző a könyvtárak használata(Andrey V. Sorokin) RegExp Studió. Az alábbiakban Nem elérhető alkalmazás leírása korrigált korrektúrahibákért:
Reguláris kifejezés széles körben alkalmazott módszer meghatározása minták, szövegek kereséshez. Speciális metakarakterek lehetővé teszik, hogy meghatározza például, hogy egy adott karakterláncot keresen a sor elején vagy a sor végén, vagy tartalmaz n e bizonyos karakter.
Reguláris kifejezések kezdők számára bonyolult, de a valóságban egy nagyon egyszerű (na jó, viszonylag egyszerű), praktikus és hatékony eszköz.
Egyetlen karaktert talál, kivéve, ha a metakarakter speciális jelentést készít alábbiakban ismertet.
Karakterek sorozata megegyezik a karakterek sorozatával, így a minta illeszkedik a célzott szövegben. Elég egyszerű!
Karakterek normálisan működnek, de metakaraktereket vagy escape szekvenciákat szóközöket kell értelmezni a backslash \ escape karaktert. Például a metakarakter ^ talál a szöveg elején egy \ ^ talál karaktert ^ és hasonlóan \ \ találat \ és így tovább.
Karaktereknek is adva egy escape szekvencia szintaxis, ugyanúgy, mint
amikor használt C és Per, ahol \ n megegyezik egy új sort létrehozására,
\ t a lapot, stb Általánosabban \ x nn
ahol nn egy string hexadecimális számjegy, megfelel a
karakter ASCII értéknek nn .
Ha szükség van széles (Unicode) karakter kódolásra,
használhatja \ x { nnnn } , ahol nnnn egy string egy vagy több
hexadecimális számjegy.
Kód | Leírás | Egyenértéküség(ekvivalencia) |
\xnn | Karakter hexadecimális kódja nn | \xnn |
\x{nnnn} | Karakter hexadecimális kódja nnnn (egy byte sima szöveg és két bájt Unikódolás (Unicode)) | |
\t | Tabulátor (HT/TAB) | \x09 |
\n | Soremelés (LF) | \x0a |
\r | Sor vissza (CR) | \x0d |
\f | Lapemelés (FF) | \x0c |
\a | Riasztás (csengő) (BEL) | \x07 |
\e | Szökés (Escape (ESC)) | \x1b |
Egyéb karakterek, szükség van az escape karakterre \ a zárójelben () és [] és, mint már említettük, a backslash önmagában \
Megadhat karakterosztályt, mellékelve a fenti karakterekből [] , ami egyezik bármelyik karakterrel a listából.
Ha az első karakter után [ ^ nem illeszkedik minden karakterre a listában.
Listán belül a - karaktert lehet megadni a tartományban , hogy az reprezentálja az összes karakter között a és z a befogadó.
Ha szeretné, hogy a - karakter legyen tagja egy osztálynak, tegye az elejére vagy a a lista végére, vagy előzze a \ escape karaktert. Ha szeretné, hogy a ] karakter legyen, akkor helyezze az elejére a listában, vagy megelőzze a \ escape karaktert.
Metakarakterek speciális karakterek, amelynek a lényege a rendszeres kifejezés. Van különböző típusú metakarakter, az alábbiakban leírtak szerint.
kód | Leírás | tr>
^ | A sor elejére | tr>
$ | sor vége | tr>
\ A | szöveg eleje | tr>
\ Z | szöveg vége | tr>
. | Bármilyen karakter a sorban | tr>
Alapértelmezésben a ^ metakarakter csak akkor garantált, hogy megfeleljen az elején a bemeneti karakterláncban vagy szövegben, a $ metakarakter csak a végén. A beágyazott sor elválasztó nem egyezik a ^ vagy $ .
Azonban,ha kezelni kívánja a szöveget, mint a multi-line buffert, úgy, hogy ^ metakarakter fog találni, miután minden sor elválasztó a szövegen belül és $ meg fog találni, sor elválasztásban. Megteheti ezt a módosító / m bekapcsolásával.
A \A és \Zolyan mint^ és $, kivéve, hogy nem fognak több tetszőleges alkalommal, amikor a módosító /m amíg használatban van a ^ és$ egyezik minden belső sor leválasztó.
Alapértelmezésben a . metakarakter minden karakterre illeszkedik, de ha váltani akarja módosító / s , akkor a . metakarakter nem egyezik a beágyazott sor elválasztásban.
TRegExpr működő sor elválasztó, ajánlott mint www.unicode.org:
^ elején van egy bemeneti szöveg: ha a
módosító /m be van kapcsolva, a bemeneti karakterláncban lesz megtalálható, ha a következő
előfordulás jelen van \x0D\x0A or \x0A vagy \x0D.
Ha ön használja az Unicode verzió ból TRegExpr, akkor is,
előfordulhat \x2028 vagy \x2029 vagy \x0B vagy \x0C
vagy \x85 egyezés.
Megjegyezzük, hogy nincs üres sor szekvencián belül
\x0D\x0A.
$ a végén van egy bemeneti szöveg: ha a
módosító /m be van kapcsolva, a bemeneti karakterláncban lesz megtalálható, ha előzőleg
előfordult\x0D\x0A vagy \x0A vagy \x0D.
Ha ön használja az Unicode verzió ból TRegExpr, akkor is
előfordulhat \x2028 vagy \x2029 vagy \x0B vagy \x0C
vagy \x85 egyezés.
Megjegyezzük, hogy nincs üres sor szekvencián belül
\x0D\x0A.
. bármilyen karakterre megegyező: ha a
módosító /s ha ki van kapcsolva, akkor .
nem egyezik \x0D\x0A és \x0A és \x0D.
Ha ön használja az Unicode verzió ból TRegExpr, akkor is
előfordulhat \x2028 és \x2029 és \x0B és \x0C
és \x85 nem egyezés.
Ne feledje, hogy a ^.*$ (egy üres sor minta) nem felel meg az üres karakterlánc szekvencián belül \x0D\x0A, de megegyezik az üres szöveg a szekvenciában \x0A\x0D.
Többsoros feldolgozás könnyen lehet behangolni, hogy megfeleljen a saját célú segítségségnek TRegExpr tulajdonságok Sor elválasztások és Sor Párosított elválasztás. Használhatja Unix stílusú elválasztót \n csak DOS/Windows stílus \r\n csak keverjük őket össze (a fent leírtak szerint, és alapértelmezésben) segítségével megadhatja a külön sor elválasztót!
Kód | Tulajdonságok |
\w | alfanumerikus karakter (beleértve a"_") |
\W | nem alfanumerikus karakter |
\d | numerikus karakter (számjegy) |
\D | nem numerikus karakter |
\s | minden szóköz karakter (ugyanaz, mint a [ \t\n\r\f]) |
\S | nem szóköz karakter |
Ön használhatja a \w, \d és \s belül az egyéni klasszikus karaktereket.
TRegExpr használja a tulajdonságokat a SpaceChars és WordChars ,hogy meghatározza a karakterosztályokat \w, \W, \s és \S, könnyen.
Kód | tulajdonságok |
\b | Szóhatár egyezik |
\B | Szóhatár nem egyezik |
szóhatár \ b egy hely két karakter, amely a \ w egyik oldalán, és egy \ W, a másik oldalán is (bármilyen sorrendben), számítva a képzeletbeli karakterek kezdetét és végét a szöveg egyezik \W.
Minden elem szabályos kifejezése követhet egy másik típusú metakaraktert, bejáró . Ezeknek a metakaraktereknek adja meg az előfordulások számát egy korábbi karakter, A metakarakter , vagy egy alkifejezés .
Kód | tulajdonságok |
* | Nulla vagy több ("mohó"), hasonló a {0,} |
+ | Egy vagy több ("mohó"), hasonló a {1,} |
? | Nulla vagy egy ("mohó"), hasonló a {0,1} |
{n} | Pontosan n-szer ("mohó") |
{n,} | Legalább n-szer ("mohó") |
{n,m} | Legalább n de legfeljebb m-szer ("mohó") |
*? | Nulla vagy több ("nem-mohó"), hasonló a {0,}? |
+? | Egy vagy több ("nem-mohó"), hasonló a {1,}? |
?? | Nulla vagy több ("nem-mohó"), hasonló a {0,1}? |
{n}? | Pontosan n -szer ("nem-mohó") |
{n,}? | Legalább n -szer("nem-mohó") |
{n,m}? | de nem több, mint Legalább n -szer m -szer ("nem-mohó") |
Ezért a számjegyeket zárójelek formájában { n, m } adja meg a minimálisan n és a maximálisan m kiegyenlített. Az űrlap { n } ekvivalens { n, n } és pontosan megegyezik n alkalommal. Az űrlap {n,} illeszkedik n vagy több alkalommal. Nincs korlátozva, hogy mekkora n vagy m , de nagy számban fogyaszt több memóriát , és lassítják a végrehajtását reguláris kifejezéseknek.
Ha a zárójel előfordul más összefüggésben, úgy kell tekinteni, mint a hagyományos karaktert.
Egy kis magyarázat a "mohóság": "mohó" minél több találat,
"nem mohó" néhány lehetséges találat.
Például, amikor alkalmazzák a szövegben a abbbbc:
b+ és b* visszatérő bbbb
b+? visszatérők b
b*? üres karakterláncot ad vissza
b{2,3}? visszatérők bb
b{2,3} visszatérők bbb
Meg lehet váltani az összes iterátorokat a "nem mohó" módban a módosít /g.
megadhat egy sor alternatívát a minta segítségével | szétválasztani őket, hogy díj | fi | ellenség egyezik meg díj , FIE , vagy ellenség a cél szöveget, mint ahogy f (e | i | o) e .
Az első alternatíva mindent tartalmaz az utolsó minta elválasztáskor (, [, vagy az elején a minta legfeljebb az első |, míg az utolsó alternatíva tartalmaz mindent, | a következő minta határoló. Emiatt ez a szokásos gyakorlat, hogy tartalmazza a zárójelben az alternatívákat, hogy minimalizálja a sor elejét és végét, ne legyen ütközés a sor eleje és vége között.
Megpróbálhat balról jobbra, így az első alternatíva található amelyek az egész kifejezésre megegyezik, amit választott. Ez azt jelenti, hogy az alternatívák nem a feltétlenül mohó. Például: ha a megfelelő (foo | láb) szemben mezítláb , csak a foo rész felel, mint a első alternatíva kipróbált és sikeresen megfelel a szövegben, ez lehet, hogy nem tűnik fontosnak, de fontos lesz, ha egyezés van a szöveg zárójelben.
Also remember that | is interpreted as a literal within square brackets, so if you write [fee|fie|foe] you are really only matching [feio|].
sorozat konstrukciót (...) is lehet használni, hogy meghatározza a reguláris kifejezéseket, hogy külön-külön egyezik. Az elemzés után megtalálható alkifejezést pozíciókat, hosszúságú és pillanatnyi értékeket MatchPos, MatchLen és Match tulajdonságait TRegExpr és helyettesítse ezeket átmeneti karakterek segítségével TRegExpr . Helyettesítő .
Alkifejezésnek vannak számozva balról jobbra haladva a kezdő zárójelel.
Az első alkifejezés száma 1 (a teljes reguláris kifejezések száma 0 - helyettesítheti ezt az irányelvet felváltó <R> írás $0 vagy $&).
Metakarakterek \1 segítségével \9 értelmezi visszautalást; \<n> megegyezik a korábban egyező alkifejezéssel #<n>.
Módosítók megváltoztatása TRegExpr .
Nagyon sok módja van a módosítás létrehozására. Bármely módosítás lehet beágyazva a reguláris kifejezés mint a (? ...) konstrukció.
Hozzárendelheti azokat a megfelelő TRegExpr tulajdonságokat ( például változtatni a módosítást / x , vagy ModifierStr változtatnak összes módosítót együtt). Az alapértelmezett értékek az új esetekben TRegExpr objektumok meghatározása globális változók , mint például a globális változó RegExprModifierX határozza meg az értékét ModifierX egy új TRegExpr .
inagybetű-független minta megfelelő (használható, ha telepítve a rendszer helyi beállítások). Lásd még InvertCase .
mKezeljük a karakterláncot több sorban. Azaz, a változás ^ és $ a hozzátartozó csak a legelején, vagy a végén a szövegnek, hogy megfelelő az elején vagy a végén minden sorban bárhol a szövegben. lásd tovább sor elválasztó .
sKezeljük a karakterláncot egy sorban. Azaz, a változás . , hogy megfeleljen bármilyen karakter egyáltalán, még egy sor elválasztásban (lásd még a sor elválasztó ), amelyek általában nem egyeznek.
gA nem szabványos módosító. Alapértelmezésben ez a módosító be van kapcsolva. Kapcsolja ki minden további operátornak a nem mohó módot. Ebben az esetben a + dolgozik +? * *? és így tovább
xkiterjesztés olvashatóság a minta által lehetővé téve szóközzel és megjegyzésekkel (magyarázatát lásd alább).
rNem szabványos módosítót. A viselkedése attól függ, hogy TRegExpr
támogatja a Unikódot-e vagy sem.
Personal Backup használja Unikód változatot , ezért
ha ez a módosító be van állítva, a tartomány а-я tartalmazza ё,
А-Я tartalmazzaЁ és
А-я minden orosz karaktert.
Megjegyzés: Az egyszerű szöveges változat a Windows-1251
kód táblázatban (nem ISO-8859-5), így a tartomány
à-ÿ (= 0xE0..0xFF) includes ¸ (= 0xB8),
À-ß (= 0xC0..0xDF) includes ¨ (= 0xA8)
és à-ß (= 0xC0..0xFF) tartalmaz minden orosz szimbólumot.
Ellentétben az eredeti változattal TRegExpr , a Personal Backup ez módosító alapértelmezés szerint nincs megadva .
A módosító (? x) maga, szüksége van egy kicsit több magyarázatra. Azt mondja TRegExpr , hogy hagyja figyelmen kívül a whitespace karakter, amely nem backslash sem egy karakterosztály. Használhatja ezt megszakítani a reguláris kifejezés a (valamivel) olvashatóbb szövegben. A # karakter is kezeli, mint egy metakarakter bevezetése Megjegyzés, például:
Példa:Ez azt is jelenti, hogy ha szeretné, hogy az igazi whitespace vagy # karakter minta (kívül karakterosztály, ahol nem befolyásolja / x), akkor használjon escape karaktert az oktális vagy hexadecimális escape karakterek helyett. Mindent összevetve, ezek a funkciók jó úton haladnak afelé, hogy a reguláris kifejezés szöveget olvashatóbbá tegye.
megjegyzés, a szöveget figyelmen kívül hagyja. Ne feledje, hogy TRegExpr bezárja a megjegyzést amint látja a karaktert ) , így nincs módja annak, hogy a literális karakterként) megjegyezze.