RegExp Studio
TRegExpr v.0.942 - Delphi Regular Expressions

Bulgarian
English
French
German
Russian
Spanish
About TRegExpr Предназначение Installation Инсталиране Regular Expressions Syntax Синтаксис TRegExpr Interface Интерфейс FAQ ЧЕВО TRegExpr usage demos Демо Author Автор  
Ñèíòàêñèñ íà 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.

Ìîäèôèêàòîðè
 
Ìîäèôèêàòîðèòå ñëóæàò çà ïðîìÿíà íà ðàáîòàòà íà TRegExpr.

Èìà ìíîãî íà÷èíè çà çàäàâàíå íà îïèñàíèòå ïî-äîëó ìîäèôèêàòîðè.
Âñåêè îò òåçè ìîäèôèêàòîðè ìîæå äà áúäå âãðàäåí â ñàìèÿ RE ÷ðåç êîíñòðóêöèÿòà
(?...)
.
Ñúùî òàêà ìîæå äà ïðèñâîÿâàòå ñòîéíîñòè íà ñâîéñòâàòà íà TRegExpr (íà
ModifierX íàïðèìåð çà ïðîìÿíà íà /m, èëè íà ModifierStr çà ïðîìÿíà íà âñè÷êè ìîäèôèêàòîðè åäíîâðåìåííî). Ñòîéíîñòèòå ïî ïîäðàçáèðàíå çà âñåêè íîâ îáåêò îò òèï TRegExpr ñà äåôèíèðàíè â ãëîáàëíè ïðîìåíëèâè, íàïðèìåð RegExprModifierX äåôèíèðà ïúðâîíà÷àëíàòà ñòîéíîñò íà ñâîéñòâîòî ModifierX íà íîâèÿ îáåêò îò òèï TRegExpr.

i
Ïðîâåðêàòà ñòàâà áåç äà ñå âëèÿå îò ðåãèñòúðà íà ñèìâîëèòå (ìàëêè/ãëàâíè áóêâè) (ñðàâíåíèåòî ñå áàçèðà íà èíñòàëèðàíèÿ åçèê íà Âàøàòà ñèñòåìà). Âèæ ñúùî InvertCase.  
m
Âúçïðèåìà âõîäíèÿ ñòðèíã êàòî ñúñòàâåí îò ìíîãî ðåäîâå, ò.å. "^" è "$" ñúâïàäàò ñ ðàçäåëèòåëèòå âúòðå â ñòðèíãà (âèæ ìåòàñèìâîëè-ðàçäåëèòåëè)  
s
Âúçïðèåìà âõîäíèÿ ñòðèíã êàòî åäèí òåêñòîâ ðåä, êàòî ìåòàñèìâîëúò "." ñúâïàäà ñ âñåêè ñèìâîë îò ñòðèíãà, âêëþ÷èòåëíî è ñ ðàçäåëèòåëèòå (âèæ ìåòàñèìâîëè-ðàçäåëèòåëè), ñ êîèòî òîé íîðìàëíî íå ñúâïàäà.  
g
Íåñòàíäàðòåí ìîäèôèêàòîð. Èçêëþ÷åòå ãî, àêî èñêàòå âñè÷êè ñëåäâàùè îïåðàöèè äà ñà â íåæàäåí ðåæèì (ïî ïîäðàæáèðàíå å âêëþ÷åí). Àêî /g å èçêëþ÷åí, òî '+' ðàáîòè êàòî '+?', '*' êàòî '*?' è ò.í.  
x
Ðàçøèðåí ñèíòàêñèñ äîïóñêà ïðàçíè ñèìâîëè è êîìåíòàðèè çà ïî-ÿñíî îôîðìÿíå íà RE (âèæ îáÿñíåíèåòî ïî-äîëó).  
r

Íåñòàíäàðòåí ìîäèôèêàòîð. Àêî òîé å âêëþ÷åí, â äèàïàçîíà [à-ÿ] ùå ñå âêëþ÷è è ñèìâîëà '¸', [À-ß] ùå âêëþ÷âà '¨', è [à-ß] ùå âêëþ÷âà âñè÷êè ñèìâîëè îò ðóñêàòà àçáóêà (ñ áúëãàðñêàòà àçáóêà òîçè ïðîáëåì íå ñúùåñòâóâà).  
Ïî ïîäðàçáèðàíå òîçè ìîäèôèêàòîð å âêëþ÷åí, à àêî òîâà íå âè õàðåñâà, èçêëþ÷åòå ãî ïîñðåäñòâîì ãëîáàëíàòà ïðîìåíëèâà RegExprModifierR.  
 
 
Ìîäèôèêàòîðúò /x
ñå íóæäàå îò ìàëêî ïîâå÷å îáÿñíåíèå. Òîé êàçâà íà TRegExpr äà èãíîðèðà èíòåðâàëèòå, êîèòî íå ñà íèòî ïðåäøåñòâàíè îò '\', íèòî ñà â ñèìâîëåí êëàñ. Ìîæå äà ãî èçïîëçâàòå, çà äà ðàçäåëèòå RE íà (ìàëêî) ïî-ðàçáèðàåìè ÷àñòè. Ñèìâîëúò # ñå òðåòèðà êàòî ìåòàñèìâîë, ñëåä êîéòî ñëåäâà êîìåíòàð, íàïðèìåð:

(  
(abc) # Êîìåíòàð 1  
| # Ìîæåòå äà èçïîëçâàòå èíòåðâàëè çà ðàçäåëèòåëè â RE - TRegExpr ãè èãíîðèðà  
(efg) # Êîìåíòàð 2  
)  

Òîâà ñúùî îçíà÷àâà, ÷å àêî æåëàåòå äà èìàòå èñòèíñêè èíòåðâàëè èëè ñèìâîëè # âúâ Âàøèÿ øàáëîí (èçâúí ñèìâîëåí êëàñ, êúäåòî òå íå ñå âëèÿÿò îò /x), ùå òðÿáâà èëè äà ãè âúâåæäàòå ñ escape-ïîñëåäîâàòåëíîñòè, èëè äà ãè êîäèðàòå ñ îñìè÷íè èëè øåñòíàäåñåòè÷íè ïîñëåäîâàòåëíîñòè. Êàòî öÿëî îáà÷å òåçè åëåìåíòè ïðàâÿò RE äîñòà ïî-óäîáíè çà ÷åòåíå.
 
 
Perl-ðàçøèðåíèÿ

(?imsxr-imsxr)
Ìîæå äà ãî èçïîëçâàòå âúòðå â RE çà âðåìåííî âêëþ÷âàíå èëè èçêëþ÷âàíå íà ìîäèôèêàòîðèòå. Àêî òàçè êîíñòðóêöèÿ ñå ñðåùíå â ïîäèçðàç, ðÿ âëèÿå ñàìî íà íåãî.


Ïðèìåðè:
(?i)Saint-Petersburg            
îòêðèâà 'Saint-petersburg' è 'Saint-Petersburg'
(?i)Saint-(?-i)Petersburg      
îòêðèâà 'Saint-Petersburg' íî íå 'Saint-petersburg'

(?i)(Saint-)?Petersburg            
îòêðèâà 'Saint-petersburg' è 'saint-petersburg'

((?i)Saint-)?Petersburg            
îòêðèâà 'saint-Petersburg', íî íå 'saint-petersburg'


(?#text)
Êîìåíòàð, òåêñòúò 'text' ñå èãíîðèðà. Îáúðíåòå âíèìàíèå, ÷å TRegExpr ñ÷èòà çà êðàé íà êîìåíòàðà ïúðâèÿò ñðåùíàò ñèìâîë ")", çàòîâà íÿìà âúçìîæíîñò äà èçïîëçâàòå òîçè ñèìâîë êàòî ÷àñò îò êîìåíòàðà.


Îáÿñíåíèå íà âúòðåøíèÿ ìåõàíèçúì

Èçãëåæäà ñå èíòåðåñóâàòå îò òàéíèòå íà TRegExpr?
Çàñåãà âñå îùå òàçè ÷àñò îò ïîìîùíàòà èíôîðìàöèÿ ñå ïèøå
èç÷àêàéòå èçâåñòíî âðåìå.
Çàñåãà íå çàáðàâÿéòå äà ïðî÷åòåòå
FAQ (ïî-ñïåöèàëíî âúïðîñúò çà íåæàäíàòà îïòèìèçàöèÿ).





© 2004 Andrey V. Sorokin, Saint Petersburg, Russia
anso@mail.ru
RegExpStudio.com

Help&Manual - the best help authoring tool!