Bulgarian
EnglishFrench German Russian Spanish |
| Предназначение | Инсталиране | Синтаксис | Интерфейс | ЧЕВО | Демо | Автор |
|
Ñèíòàêñèñ íà Regular Expressions
Âúâåäåíèå Regular Expressions ñà øèðîêî èçïîëçâàí ìåòîä çà çàäàâàíå íà øàáëîíè çà òúðñåíå íà òåêñò. Ñïåöèàëíè ìåòàñèìâîëè ïîçâîëÿâàò äà ñå óêàæå íàïðèìåð, äàëè òåêñòúò, êîéòî ñå òúðñè, äà å â íà÷àëîòî èëè â êðàÿ íà ðåäà, èëè ïúê ñúäúðæà n ïîâòîðåíèÿ íà äàäåí ñèìâîë. Regular expressions èçãëåæäàò äîñòà ñòðàøíî íà ïðúâ ïîãëåä, íî òå íàèñòèíà ñà ìíîãî ïðîñòè (ò.å. îáèêíîâåíî ñà ïðîñòè;) ), óäîáíè è ìîùíè ñðåäñòâà. Ïðåïîðú÷âàì âè äà ñè ïîèãðàåòå ñ regular expressions èçïîëçâàéêè TestRExp.dpr òîé ùå âè ïîìîãíå äà ðàçáåðåòå ãëàâíèòå êîíöåïöèè. Îñâåí òîâà â íåãî ñà âêëþ÷åíè ìíîãî ïðåäâàðèòåëíî äåôèíèðàíè è êîìåíòèðàíè èçðàçè Íåêà äà çàïî÷íåì íàøåòî îáó÷åíèå! Ïðîñòè ñúâïàäåíèÿ Âñåêè ïðîñò ñèìâîë ñúâïàäà ñàì ñúñ ñåáå ñè, îñâåí àêî íå å ìåòàñèìâîë ñúñ ñïåöèàëíî ïðåäíàçíà÷åíèå, îïèñàíî ïî-äîëó. Ïîñëåäîâàòåëíîñò îò ñèìâîëè ñúâïàäà ñúñ ñúùàòà ïîñëåäîâàòåëíîñò, íàïðèìåð èçðàçúò "bluh" ùå ñúâïàäíå ñ "bluh" â èçñëåäâàíèÿ ñòðèíã. Çàñåãà å ïðîñòî, à ? Ìîæåòå äà çàäàâàòå ñèìâîëè, êîèòî íîðìàëíî ïðèíàäëåæàò êúì ãðóïàòà íà ìåòàñèìâîëèòå èëè escape ïîñëåäîâàòåëíîñòèòå, äà áúäàò èíòåðïðåòèðàíè êàòî íîðìàëåí (ëèòåðàëåí) ñèìâîë, êàòî ïðîñòî ïîñòàâèòå ñèìâîëà "\" ïðåä òÿõ. Íàïðèìåð "^" å ìåòàñèìâîë, îçíà÷àâàù íà÷àëî íà ðåäà, à "\^" îïðåäåëÿ ñàìèÿ ñèìâîë "^". "\\" îïðåäåëÿ "\" è ò.í.. Ïðèìåðè: Foobar îòêðèâà 'foobar' \^FooBarPtr îòêðèâà '^FooBarPtr' Escape ïîñëåäîâàòåëíîñòè Âñåêè ñèìâîë ìîæå äà áúäå çàäàâàí è ñúñ ñèíòàêñèñ çà escape ïîñëåäîâàòåëíîñò òàêà, êàêòî å â C è Perl: "\n" îïðåäåëÿ ñèìâîëà 'íîâ ðåä'; "\t" îïðåäåëÿ tab; "\r" - return; "\f" - form feed, è ò.í.  îáùèÿ ñëó÷àé ìîæå äà ñå èçïîëçâà \xnn, êúäåòî nn å ïîðåäèöà îò øåñòíàäåñåòè÷íè öèôðè, óêàçâàùè ASCII-êîäà íà æåëàíèÿ ñèìâîë. Àêî èñêàòå äà çàäàäåòå ñèìâîë îò òàáëèöàòà UniCode, ìîæå äà èçïîëçâàòå '\x{nnnn}', êúäåòî 'nnnn' ñà åäíà èëè ïîâå÷å øåñòíàäåñåòè÷íè öèôðè. \xnn ñèìâîë ñ hex êîä nn \x{nnnn} ñèìâîë ñ hex êîä nnnn (åäèí áàéò çà ÷èñò òåêñò è äâà - çà Unicode) \t tab (HT/TAB), ñúùî è \x09 \n newline (NL), ñúùî è \x0a \r car.return (CR), ñúùî è \x0d \f form feed (FF), ñúùî è \x0c \a alarm (bell) (BEL), ñúùî è \x07 \e escape (ESC), ñúøî è \x1b Ïðèìåðè: foo\x20bar îòêðèâà 'foo bar' (ñ èíòåðâàë â ñðåäàòà) \tfoobar îòêðèâà 'foobar', ïðåäøåñòâàí îò tab Êëàñ îò ñèìâîëè Ìîæå äà çàäàäåòå êëàñ îò ñèìâîëè, êàòî ãè çàòâîðèòå â êâàäðàòíè ñêîáè [ ].  òîçè ñëó÷àé ñå ïðîâåðÿâà çà ñúâïàäåíèå íà êîéòî è äà å ñèìâîë îò êëàñà. Àêî ïúðâèÿò ñèìâîë â êëàñà âåäíàãà ñëåä "[" å "^", ñå ïðîâåðÿâà çà ñúâïàäåíèå íà âñè÷êè ñèìâîëè, êîèòî íå ñà îò òîçè êëàñ. Ïðèìåðè: foob[aeiou]r îòêðèâà 'foobar', 'foober' è ò.í., íî íå 'foobbr', 'foobcr' è ò.í. foob[^aeiou]r îòêðèâà 'foobbr', 'foobcr' è ò.í., íî íå 'foobar', 'foober' è ò.í. Âúòðå â îïèñàíèåòî íà êëàñà ìîæå äà ñå èçïîëçâà ñèìâîëúò "-" çà çàäàâàíå íà îáõâàò, íàïðèìåð a-z ïðåäñòàâëÿâà ñúêðàòåí çàïèñ íà âñè÷êè áóêâè îò "a" äî "z" âêëþ÷èòåëíî. Àêî èñêàòå ñàìèÿò ñèìâîë "-" äà áúäå ÷ëåí íà êëàñà, ïðîñòî ãî ïîñòàâåòå â íà÷àëîòî èëè â êðàÿ íà êëàñà, èëè ïðåä íåãî ñëîæåòå "\". Àêî èñêàòå è "]" äà áúäå ÷ëåí íà êëàñà, ïîñòàâåòå ãî â íà÷àëîòî íà ñïèñúêà èëè ïðåä íåãî ñëîæåòå "\". Ïðèìåðè: [-az] îòêðèâà 'a', 'z' è '-' [az-] îòêðèâà 'a', 'z' è '-' [a\-z] îòêðèâà 'a', 'z' è '-' [a-z] îòêðèâà âñè÷êè 26 ìàëêè áóêâè îò 'a' äî 'z' [\n-\x0D] îòêðèâà êîåòî è äà å îò #10,#11,#12,#13. [\d-t] îòêðèâà âñè÷êè öèôðè, '-' or 't'. []-a] îòêðèâà ïðîèçâîëåí ñèìâîë â îáõâàòà ']'..'a'. Ìåòàñèìâîëè Ìåòàñèìâîëèòå ñà ñïåöèàëíè ñèìâîëè, êîèòî ñà ñúùíîñòòà íà Regular Expressions. Èìà ðàçëè÷íè òèïîâå ìåòàñèìâîëèîïèñàíè ïî-äîëó. Ìåòàñèìâîëè - ðàçäåëèòåëè ^ íà÷àëî íà ðåä $ êðàé íà ðåä \A íà÷àëî íà òåêñò \Z êðàé íà òåêñò . ïðîèçâîëåí ñèìâîë Ïðèìåðè: ^foobar îòêðèâà 'foobar' ñàìî àêî å â íà÷àëîòî íà ðåäà foobar$ îòêðèâà 'foobar' ñàìî àêî å â êðàÿ íà ðåäà ^foobar$ îòêðèâà 'foobar' ñàìî àêî å åäèíñòâåíèÿ ñòðèíã íà ðåäà foob.r îòêðèâà ñòðèíãîâå êàòî 'foobar', 'foobbr', 'foob1r' è ò.í. Ïî ïîäðàçáèðàíå ñèìâîëúò "^" ñúâïàäà ñàìî ñ íà÷àëîòî íà îáðàáîòâàíèÿ ôðàãìåíò îò òåêñòà, à ñèìâîëúò "$" - ñ íåãîâèÿ êðàé (èëè ïðåä \n â êðàÿ), êîåòî ïîçâîëÿâà óñêîðÿâàíå íà ïðîöåñà ïî îòêðèâàíå íà ñúâïàäåíèÿ. Âñè÷êè ñèìâîëè \n, êîèòî ñå ñðåùàò âúòðå â òåêñòîâèÿ áëîê, íå ñå ðàçïîçíàâàò îò "^" èëè "$". Àêî îáà÷å èñêàòå äà òðåòèðàòå âõîäíèÿ ñòðèíã êàòî áóôåð ñ ìíîãî ðåäîâå òåêñò, ïðè êîåòî "^" äà ñúâïàäà ñ íà÷àëîòî íà âñåêè ðåä â òîçè áóôåð (ñëåä \n), à "$" ñ êðàÿ íà âñåêè ðåä (ïðåäè \n), òîâà ìîæå äà ñòàíå ÷ðåç àêòèâèðàíå íà ìîäèôèêàòîðà /m. Ìåòàñèìâîëèòå \A è \Z ñúâïàäàò ñ "^'' è "$'', ñ èçêëþ÷åíèå íà òîâà, ÷å ïðè òÿõ íÿìà ìíîãîêðàòíè ñúâïàäåíèÿ â ñëó÷àé ÷å ñå èçïîëçâà ìîäèôèêàòîðúò /m, äîêàòî â òîçè ñëó÷àé "^'' è "$'' ùå îòêðèâàò âñè÷êè âúòðåøíè çà òåêñòà çíàöè çà êðàé íà ðåä. Ìåòàñèìâîëúò ".'' ïî ïîäðàçáèðàíå ñúâïàäà ñ âñåêè ñèìâîë â òåêñòà, íî àêî èçêëþ÷èòå ìîäèôèêàòîðà /s, òî '.' íÿìà äà îòêðèâà âúòðåøíèòå çà òåêñòà çíàöè çà êðàé íà ðåä. TRegExpr ðàáîòè ñúñ çíàöèòå çà êðàé íà òåêñò ñïîðåä ïðåïîðúêèòå íà www.unicode.org ( http://www.unicode.org/unicode/reports/tr18/ ): "^" ñúâïàäà ñ íà÷àëîòî íà âõîäíèÿ ñòðèíã, è, àêî ìîäèôèêàòîðúò /m å âêëþ÷åí, ñúùî òàêà ñúñ ñèìâîëèòå, íåïîñðåäñòâåíî ñëåäâàùè âñÿêî ñðåùàíå íà êîìáèíàöèèòå \x0D\x0A èëè \x0A èëè \x0D (Àêî èçïîëçâàòå Unicode-âåðñèÿòà íà TRegExpr, è ñëåä \x2028 èëè \x2029 èëè \x0B èëè \x0C èëè \x85). Çàáåëåæåòå, ÷å íÿìà ïðàçåí ðåä â êîìáèíàöèÿòà \x0D\x0A. "$" ñúâïàäà ñ êðàÿ íà âõîäíèÿ ñòðèíã, è, àêî ìîäèôèêàòîðúò /m å âêëþ÷åí, ñúùî òàêà ñúñ ñèìâîëèòå, íåïîñðåäñòâåíî ïðåäøåñòâàùè âñÿêî ñðåùàíå íà êîìáèíàöèèòå \x0D\x0A èëè \x0A èëè \x0D (Àêî èçïîëçâàòå Unicode-âåðñèÿòà íà TRegExpr, è ïðåäè \x2028 èëè \x2029 èëè \x0B èëè \x0C èëè \x85). Çàáåëåæåòå, ÷å íÿìà ïðàçåí ðåä â êîìáèíàöèÿòà \x0D\x0A. "." ñúâïàäà ñúñ âñåêè ñèìâîë, íî àêî èçêëþ÷èòå ìîäèôèêàòîðà /s òîãàâà "." íå ñúâïàäà ñ \x0D\x0A è \x0A è \x0D (Àêî èçïîëçâàòå Unicode-âåðñèÿòà íà TRegExpr, è ñ \x2028 èëè \x2029 èëè \x0B èëè \x0C èëè \x85). Çàáåëåæåòå, ÷å "^.*$" (øàáëîí çà ïðàçåí ðåä) íÿìà äà äàäå ñúâïàäåíèå çà ïðàçåí ðåä â êîìáèíàöèÿòà \x0D\x0A, íî ùå äàäå òàêîâà çà êîìáèíàöèÿòà \x0A\x0D. Îáðàáîòêàòà íà ìíîãî ðåäîâå ìîæå äà áúäå íàñòðîéâàíà ëåñíî çà Âàøèòå íóæäè ÷ðåç ñâîéñòâàòà íà TRegExpr LineSeparators è LinePairedSeparator, Ìîæå äà ïîëçâàòå ñàìî ðàçäåëèòåëèòå /n â ñòèë Unix , èëè \r\n íà DOS/Windows, èëè äà ãè ñìåñâàòå (êàêòî å îïèñàíî ïî-ãîðå è å ïî ïîäðàçáèðàíå), èëè äîðè äà äåôèíèðàòå ñîáñòâåíè ðàçäåëèòåëè! Ìåòàñèìâîëè ïðåäâàðèòåëíî äåôèíèðàíè êëàñîâå \w áóêâåíî-öèôðîâ ñèìâîë (âêëþ÷èòåëíî "_") \W íåáóêâåíî-öèôðîâ ñèìâîë \d öèôðîâ ñèìâîë \D íåöèôðîâ ñèìâîë \s èíòåðâàëåí ñèìâîë (ñúùîòî êàòî [ \t\n\r\f]) \S íåèíòåðâàëåí ñèìâîë Ìîæå äà èçïîëçâàòå \w, \d è \s â ïðîèçâîëíè ñèìâîëíè êëàñîâå. Ïðèìåðè: foob\dr ñúâïàäà ñúñ ñòðèíãîâå êàòî 'foob1r', ''foob6r' è ò.í., íî íå ñ 'foobar', 'foobbr' è ò.í. foob[\w\s]r ñúâïàäà ñúñ ñòðèíãîâå êàòî 'foobar', 'foob r', 'foobbr' è ò.í., íî íå ñ 'foob1r', 'foob=r' è ò.í. TRegExpr èçïîëçâà ñâîéñòâàòà SpaceChars è WordChars çà äåôèíèðàíå íà ñèìâîëíèòå êëàñîâå \w, \W, \s, \S, òàêà, ÷å Âèå ëåñíî ìîæåòå äà ñè ãè ïðåäåôèíèðàòå. Ìåòàñèìâîëè - èòåðàòîðè Âñÿêà ÷àñò îò åäèí regular expression ìîæå äà áúäå ïîñëåäâàíà îò äðèã âèä ìåòàñèìâîëè - èòåðàòîðè. ×ðåç òÿõ ìîæå äà çàäàâàòå áðîÿ íà ñðåùàíèÿòà íà ïðåäõîæäàùèòå ãè ñèìâîë, , ìåòàñèìâîë èëè ïîäèçðàç. * íóëà èëè ïîâå÷å ïúòè ("æàäåí"), ïîäîáíî íà {0,} + åäèí èëè ïîâå÷å ïúòè ("æàäåí"), ïîäîáíî íà {1,} ? íóëà èëè åäèí ïúò ("æàäåí"), ïîäîáíî íà {0,1} {n} òî÷íî n ïúòè ("æàäåí") {n,} íàé-ìàëêî n ïúòè ("æàäåí") {n,m} íàé-ìàëêî n íî íå ïîâå÷å îò m ïúòè ("æàäåí") *? íóëà èëè ïîâå÷å ïúòè ("íåæàäåí"), ïîäîáíî íà {0,} +? åäèí èëè ïîâå÷å ïúòè ("íåæàäåí"), ïîäîáíî íà {1,} ?? íóëà èëè åäèí ïúò ("íåæàäåí"), ïîäîáíî íà {0,1} {n}? òî÷íî n ïúòè ("íåæàäåí") {n,}? íàé-ìàëêî n ïúòè ("íåæàäåí") {n,m}? íàé-ìàëêî n íî íå ïîâå÷å îò m ïúòè ("íåæàäåí") È òàêà, öèôðèòå âúâ ôèãóðíèòå ñêîáè îò òèïà {n,m} óêàçâàò ìèíèìàëíèÿò áðîé ñúâïàäåíèÿ n è ìàêñèìàëíèÿ m. Ôîðìàòà {n} å åêâèâàëåíò íà {n,n} è îñèãóðÿâà ñúâïàäåíèå òî÷íî n ïúòè. Ôîðìàòà {n,} îñèãóðÿâà ñúâïàäåíèÿ n èëè ïîâå÷å ïúòè. Íÿìà îãðàíèÿåíè÷ çà ãîëåíèìàòà íà n èëè m, íî ïî-ãîëåìèòå ÷èñëà âîäÿò äî çàåìàíå íà ïîâå÷å ïàìåò è äî çàáàâÿíå íà èç÷èñëåíèåòî íà RE. Àêî ôèãóðíèòå ñêîáè ñå ñðåùíàò íà äðóãî ìÿñòî, òå ñå òðåòèðàò êàòî îáèêíîâåíè ñèìâîëè. Ïðèìåðè: foob.*r ñúâïàäà ñúñ ñòðèíãîâå êàòî 'foobar', 'foobalkjdflkj9r' è 'foobr' foob.+r ñúâïàäà ñúñ ñòðèíãîâå êàòî 'foobar', 'foobalkjdflkj9r' íî íå 'foobr' foob.?r ñúâïàäà ñúñ ñòðèíãîâå êàòî 'foobar', 'foobbr' è 'foobr' íî íå 'foobalkj9r' fooba{2}r ñúâïàäà ñ 'foobaar' fooba{2,}r ñúâïàäà ñúñ ñòðèíãîâå êàòî 'foobaar', 'foobaaar', 'foobaaaar' è ò.í.. fooba{2,3}r ñúâïàäà ñúñ ñòðèíãîâå êàòî 'foobaar' èëè 'foobaaar' íî íå 'foobaaaar' Ìàëêî îáÿñíåíèå íà "æàæäàòà". "Æàäåí" äàâà êîëêîòî ñå ìîæå ïîâå÷å ñúâïàäåíèÿ, "íåæàäåí" äàâà êîëêîòî ñå ìîæå ïî-ìàëêî ñúâïàäåíèÿ. Íàïðèìåð, 'b+' è 'b*' , ïðèëîæåíè êúì 'abbbbc' âðúùàò 'bbbb', 'b+?' âðúùà 'b', 'b*?' âðúùà ïðàçåí ñòðèíã, 'b{2,3}?' âðúùà 'bb', 'b{2,3}' âðúùà 'bbb'. Âñè÷êè èòåðàòîðè ìîæå äà áúäàò ïðåâêëþ÷åíè â "íåæàäåí" ðåæèì (âèæ ìîäèôèêàòîðà /g). Ìåòàñèìâîëè - àëòåðíàòèâè Ìîæå äà çàäàâàòå íÿêîëêî àëòåðíàòèâè çà äàäåí èçðàç, èçïîëçâàéêè ñèìâîëà "|" êàòî ðàçäåëèòåë ìåæäó òÿõ. Íàïðèìåð 'fee|fie|foe' ùå ñúâïàäíå ñ êîÿòî è äà å îò äóìèòå "fee", "fie", èëè "foe" âúâ âõîäíèÿ ïîòîê (ñúùèÿò ðåçóëòàò ùå ñå ïîëó÷è è ñ 'f(e|i|o)e'). Ïúðâàòà àëòåðíàòèâà âêëþ÷âà âñè÷êî îò ïîñëåäíèÿ ðàçäåëèòåë ("(", "[", èëè íà÷àëîòî íà RE) äî ïúðâèÿ "|", à ïîñëåäíàòà âñè÷êî îò ïîñëåäíèÿ "|" äî ñëåäâàùèÿ ðàçäåëèòåë. Çàòîâà å ïðåïîðú÷èòåëíî äà ïîñòàâÿòå àëòåðíàòèâèòå â ñêîáè, çà äà ñå èçáåãíàò íåäîðàçóìåíèÿòà çà òîâà êúäå çàïî÷âàò èëè çàâúðøâàò. Àëòåðíàòèâèòå ñå ïðåãëåæäàò îò ëÿâî íà äÿñíî, êàòî ïðè òîâà ñå èçáèðà ïúðâèÿò ïîäõîäÿù âàðèàíò. Òîâà îçíà÷àâà, ÷å àëòåðíàòîâèòå íå å çàäúëæèòåëíî äà ñà "æàäíè". Íàïðèìåð: àêî òúðñèì 'foo|foot' â "barefoot", ùå èìàìå ñúâïàäåíèå íà àëòåðíàòèâàòà "foo", ïîíåæå òÿ å íàé-ëÿâàòà àëòåðíàòèâà, è óäîâëåòâîðÿâà ñúâïàäåíèåòî. (Òîâà ìîæå è äà íå èçãëåæäà âàæíî, íî å êîãàòî èñêàòå äà âçåìåòå òåêñòà, îòãîâàðÿù íà ñúâïàäåíèåòî, èçïîëçâàéêè ñêîáè.) Îñâåí òîâà íå çàáðàâÿéòå, ÷å "|" ñå èíòåðïðåòèðà êàòî ëèòåðàëåí ñèìâîë â êâàäðàòíèòå ñêîáè, òàêà, ÷å àêî íàïèøåòå [fee|fie|foe] âñúùíîñò òîâà ùå îòãîâàðÿ íà [feio|]. Ïðèìåðè: foo(bar|foo) ñúâïàäà ñ 'foobar' èëè 'foofoo'. Ìåòàñèìâîëè - ïîäèçðàçè Êðúãëèòå ñêîáè ( ... ) ìîæå äà áúäàò èçïîëçâàíè è çà îòäåëÿíå íà ïîäèçðàçè (ñëåä èçïúëíåíèå íà RE èìàòå èíôîðìàöèÿ çà ïîçèöèÿòà, äúëæèíàòà è ñòîéíîñòòà íà âñåêè ïîäèçðàç, íàìèðàùà ñå â ïðîìåíëèâèòå MatchPos, MatchLen è ñâîéñòâàòà Match íà TRegExpr, à ñúùî òàêà ìîæåòå è äà ãè çàìåñòâàòå â øàáëîííè ñòðèíãîâå ñ ïîìîùòà íà TRegExpr.Substitute). Ïîäèçðàçèòå ñà íîìåðèðàíè, êàòî íîìåðàöèÿòà ñå áàçèðà íà ïîäðåæäàíåòî îòëÿâî íàäÿñíî íà îòâàðÿùèòå ñêîáè. Ïúðâèÿò ïîäèçðàç èìà íîìåð '1' (öåëèÿ RE îòãîâàðÿ íà íîìåð '0' ïî òîçè íà÷èí ìîæå äà ãî èçïîëçâàòå çà çàìåñòâàíå â TRegExpr.Substitute êàòî '$0' èëè '$&'). Ïðèìåðè: (foobar){8,10} îòêðèâà òåêñò, ñúäúðæàù 8, 9 èëè 10 ñðåùàíèÿ íà 'foobar' foob([0-9]|a+)r ñúâïàäà ñ 'foob0r', 'foob1r' , 'foobar', 'foobaar', 'foobaar' etc. Ìåòàñèìâîëè îáðàòíè âðúçêè (backreferences) Ìåòàñèìâîëèòå îò \1 äî \9 ñå èíòåðïðåòèðàò êàòî îáðàòíè âðúçêè. Ñ ìåòàñèìâîëà \<n> ñå çàäàâà ñúîòâåòñòâèå ñ ïðåäâàðèòåëíî íàìåðåíèÿò âå÷å ïîäèçðàç íîìåð <n>. Ïðèìåðè: (.)\1+ îòêðèâà íàïð. 'aaaa' è 'cc'. (.+)\1+ îòêðèâà íàïð. 'abab' è '123123' (['"]?)(\d+)\1 îòêðèâà '"13" (â äâîéíè êàâè÷êè), èëè '4' (â åäèíè÷íè êàâè÷êè) èëè 77 (áåç êàâè÷êè) è ò.í. Ìåòàñèìâîëè ãðàíèöè íà äóìè (word boundaries) \b Match a word boundary \B Match a non-(word boundary) Ãðàíèöà íà äóìà (\b) å ìÿñòîòî ìåæäó äâà ñèìâîëà. Òî èìà \w îò åäíàòà ñè ñòðàíà è \W îò äðóãàòà (íåçàâèñèìî îò ðåäà èì), è ïðåäñòàâëÿâà âúîáðàæàåìèòå ñèìâîëè, êîèòî ñà ìåæäó ñòðèíãà, îïðåäåëåí êàòî \W. Ìîäèôèêàòîðè
Èìà ìíîãî íà÷èíè çà çàäàâàíå íà îïèñàíèòå ïî-äîëó ìîäèôèêàòîðè. Âñåêè îò òåçè ìîäèôèêàòîðè ìîæå äà áúäå âãðàäåí â ñàìèÿ RE ÷ðåç êîíñòðóêöèÿòà (?...). Ñúùî òàêà ìîæå äà ïðèñâîÿâàòå ñòîéíîñòè íà ñâîéñòâàòà íà TRegExpr (íà ModifierX íàïðèìåð çà ïðîìÿíà íà /m, èëè íà ModifierStr çà ïðîìÿíà íà âñè÷êè ìîäèôèêàòîðè åäíîâðåìåííî). Ñòîéíîñòèòå ïî ïîäðàçáèðàíå çà âñåêè íîâ îáåêò îò òèï TRegExpr ñà äåôèíèðàíè â ãëîáàëíè ïðîìåíëèâè, íàïðèìåð RegExprModifierX äåôèíèðà ïúðâîíà÷àëíàòà ñòîéíîñò íà ñâîéñòâîòî ModifierX íà íîâèÿ îáåêò îò òèï TRegExpr. i
Òîâà ñúùî îçíà÷àâà, ÷å àêî æåëàåòå äà èìàòå èñòèíñêè èíòåðâàëè èëè ñèìâîëè # âúâ Âàøèÿ øàáëîí (èçâúí ñèìâîëåí êëàñ, êúäåòî òå íå ñå âëèÿÿò îò /x), ùå òðÿáâà èëè äà ãè âúâåæäàòå ñ escape-ïîñëåäîâàòåëíîñòè, èëè äà ãè êîäèðàòå ñ îñìè÷íè èëè øåñòíàäåñåòè÷íè ïîñëåäîâàòåëíîñòè. Êàòî öÿëî îáà÷å òåçè åëåìåíòè ïðàâÿò RE äîñòà ïî-óäîáíè çà ÷åòåíå.
|