|
Библиотеки Сторонние библиотеки для Blitz |
24.10.2010, 16:00
|
#1
|
ПроЭктировщик
Регистрация: 16.04.2008
Сообщений: 161
Написано 36 полезных сообщений (для 63 пользователей)
|
Поиск Dll регулярных выражений
У кого нибудь есть библа для работы с регулярными выражениями
буду благодарен
__________________
форум эт вещь... и почему я раньше им не пользовался?
AMD Phenom(tm) II X6 3.20GHz 8GB GTX 550(1Gb)
|
(Offline)
|
|
17.11.2010, 17:08
|
#2
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,361
Написано 2,473 полезных сообщений (для 6,856 пользователей)
|
Ответ: Поиск Dll регулярных выражений
Print RegEx_Process("H(д|ae?)ndel","Handel") Print RegEx_Process("H(д|ae?)ndel","Hдendel") Print RegEx_Process("H(д|ae?)ndel","Hendel") Print RegEx_Process("H(д|ae?)ndel","HaendelASDFGHB!") Print RegEx_Process("[hc]+at","hat") Print RegEx_Process("\\","\") Print RegEx_Process("[hc]+at","chat") Print RegEx_Process("[hc]+at\n","cat"+Chr(13)) Print RegEx_Process("-?[:digit:]+","1256") Print RegEx_Process("bo+o","boogle!") Print RegEx_Process(Chr(34)+"[^\n]*"+Chr(34),Chr(34)+"String literal!.><"+Chr(34)+"wakakaka") Print RegEx_Process("0[0-9]*(([uU][lL]?)|([lL][uU]?))?","012") Print RegEx_Process("0[0-9]*(([uU][lL]?)|([lL][uU]?))?","012u") Print RegEx_Process("0[0-9]*(([uU][lL]?)|([lL][uU]?))?","012l") Print RegEx_Process("0[0-9]*(([uU][lL]?)|([lL][uU]?))?","012LU") Print RegEx_Process("0[0-9]*(([uU][lL]?)|([lL][uU]?))?","012uL") Print RegEx_Process("N(u|l)*","Null") WaitKey End ;=============================================================================== ;Regular expressions ;=============================================================================== Type RegEx_NFA Field nType Field state Field stack Field value$ Field lNode.RegEx_NFA Field rNode.RegEx_NFA Field root.RegEx_NFA End Type Function RegEx_Process$(regIn$,inputString$) ;Compare a pattern to a string (not actually used here!) Local oNode.RegEx_NFA,char$,branchList oNode=RegEx_Parse(regIn) char=RegEx_Match(Handle(oNode),StrToBank(inputString),0) RegEx_Delete(oNode) FreeBank branchList Return char End Function Function RegEx_Match$(RegExH,inputStringBank,startPtr) ;Match an NFA against a bank Local node.RegEx_NFA,oNode.RegEx_NFA,cPtr,maxPtr,i,char$,cAsc Local nodeStack,stackSize,caseSen oNode=Object.RegEx_NFA(RegExH) If oNode\nType<0 Then Return RegEx_MatchSimple(oNode,inputStringBank,startPtr) If (oNode\state And %01) ;If it's a line start pattern only... If startPtr>1 If PeekShort(inputStringBank,startPtr-2)<>$A0D Then Return "" Else If startPtr=1 Then Return "" EndIf EndIf caseSen=Not(oNode\state And %100) node=oNode maxPtr=BankSize(inputStringBank) cPtr=startPtr nodeStack=CreateBank(14) PokeInt nodeStack,0,Handle(node) PokeInt nodeStack,4,cPtr PokeByte nodeStack,9,node\nType While BankSize(nodeStack)>0 stackSize=BankSize(nodeStack) ResizeBank nodeStack,stackSize+14 PokeInt nodeStack,stackSize,Handle(node) PokeInt nodeStack,stackSize+4,cPtr PokeByte nodeStack,stackSize+8,node\nType PokeInt nodeStack,stackSize+10,1 Select node\nType Case 3,4,6 If node\stack=0 Then node\stack=CreateBank(4):Else ResizeBank node\stack,4 PokeInt node\stack,0,cPtr node=node\lNode PokeByte nodeStack,stackSize+9,1 Case 5 If node\stack=0 Then node\stack=CreateBank(4):Else ResizeBank node\stack,4 PokeInt node\stack,0,cPtr node=node\lNode PokeByte nodeStack,stackSize+9,0 Case 12 Exit Default If cPtr<maxPtr cAsc=PeekByte(inputStringBank,cPtr) If caseSen=0 If cAsc>=65 And cAsc<=90 Then cAsc=cAsc+32 EndIf char=Chr(cAsc) Else char="" EndIf If Instr(node\value,char)>0 And char<>"" cPtr=cPtr+1 If node\rNode<>Null node=node\rNode Else Repeat ResizeBank nodeStack,stackSize stackSize=stackSize-14 Until PeekInt(nodeStack,stackSize)=Handle(node\root) node=Object.RegEx_NFA(PeekInt(nodeStack,stackSize)) PokeByte nodeStack,stackSize+9,node\nType<>3 ResizeBank node\stack,BankSize(node\stack)+4 PokeInt node\stack,BankSize(node\stack)-4,cPtr PokeInt nodeStack,stackSize+10,PeekInt(nodeStack,stackSize+10)+1 node=node\lNode EndIf Else Repeat ResizeBank nodeStack,stackSize If stackSize=0 Then Exit stackSize=stackSize-14 If PeekByte(nodeStack,stackSize+8)<>0 And PeekByte(nodeStack,stackSize+9)=1 node=Object.RegEx_NFA(PeekInt(nodeStack,stackSize)) cPtr=PeekInt(node\stack,BankSize(node\stack)-4) ResizeBank node\stack,BankSize(node\stack)-4 node=node\rNode PokeInt nodeStack,stackSize+10,PeekInt(nodeStack,stackSize+10)-1 PokeByte nodeStack,stackSize+9,PeekInt(nodeStack,stackSize+10)>0 Exit EndIf Forever EndIf End Select Wend If node\nType=12 char="" For i=startPtr To cPtr-1 char=char+Chr(PeekByte(inputStringBank,i)) Next Else char="" End If If (oNode\state And %010) ;If it's a line end pattern only If startPtr+Len(char)<BankSize(inputStringBank) If startPtr+Len(char)=BankSize(inputStringBank)-1 char="" Else If PeekShort(inputStringBank,startPtr+Len(char))<>$A0D Then char="" EndIf EndIf EndIf RegEx_ClearStacks(oNode) FreeBank nodeStack Return char End Function Function RegEx_MatchSimple$(node.RegEx_NFA,inputStringBank,startPtr) ;Quicker test for simple patterns Local caseSen,i,c,inputString$ If BankSize(inputStringBank)<=startPtr+Len(node\value) Then Return "" ;If the remaining string is shorter than the pattern If (node\state And %01) ;If it's a line start pattern only... If startPtr>1 If PeekShort(inputStringBank,startPtr-2)<>$A0D Then Return "" Else If startPtr=1 Then Return "" EndIf EndIf caseSen=Not(node\state And %100) For i=0 To BankSize(node\stack)-1 c=PeekByte(inputStringBank,startPtr+i) If caseSen=0 If (c>=65 And c<=90) Then c=c+32 EndIf If c<>PeekByte(node\stack,i) Then Return "":Else inputString=inputString+Chr(c) Next If (node\state And %010) ;If it's a line end pattern only i=BankSize(node\stack) If startPtr+i<BankSize(inputStringBank) If startPtr+i=BankSize(inputStringBank)-1 Return "" Else If PeekShort(inputStringBank,startPtr+i)<>$A0D Then Return "" EndIf EndIf EndIf Return inputString End Function Function RegEx_Parse.RegEx_NFA(regIn$,caseSensitive=1) ;Convert a regular expression to prefix notation Local cPtr,opStack,valStack,tok$,lOp$,rOp$,opt$,inClass Local oNode.RegEx_NFA,lNode.RegEx_NFA Local lineStart,lineEnd If Left(regIn,1)="^" ;This pattern may only match the start of a line regIn=Mid(regIn,2) lineStart=True EndIf If Right(regIn,1)="$" ;This pattern may only match the end of a line If Right(regIn,2)<>"\$" regIn=Left(regIn,Len(regIn)-1) lineEnd=True EndIf EndIf If RegEx_IsSimple(regIn) oNode=New RegEx_NFA oNode\nType=-1 If lineStart Then oNode\state=1 If lineEnd Then oNode\state=oNode\state+2 If caseSensitive=0 Then oNode\state=oNode\state+4:regIn=Lower(regIn) oNode\stack=StrToBank(regIn) Return oNode EndIf While cPtr<Len(regIn) ;Preprocess regIn to insert explicit concatenation operator Chr(8) cPtr=cPtr+1 tok=tok+Mid(regIn,cPtr,1) If Right(tok,1)<>"\" Or Right(tok,2)="\\" If cPtr=Len(regIn) Then Exit If Mid(regIn,cPtr,1)="[" If cPtr>1 If Mid(regIn,cPtr-1,1)<>"\" Then inClass=inClass+1 Else inClass=inClass+1 EndIf EndIf opt=Mid(regIn,cPtr+1,1) If inClass=False If opt<>"*" And opt<>"+" And opt<>"?" And opt<>"|" And opt<>")" If Mid(regIn,cPtr,1)<>"(" And Mid(regIn,cPtr,1)<>"|" tok=tok+Chr(8) EndIf EndIf Else If opt="]" And Mid(regIn,cPtr,1)<>"\" Then inClass=inClass-1 EndIf EndIf Wend regIn=tok valStack=CreateBank() opStack=CreateBank() cPtr=1 inClass=False While cPtr<=Len(regIn) tok="" ;Get token If Mid(regIn,cPtr,1)="[" ;Character class cPtr=cPtr+1 inClass=inClass+1 Repeat If Mid(regIn,cPtr,1)="]" inClass=inClass-1 If inClass Then tok=tok+"]" cPtr=cPtr+1 If inClass=0 Then Exit ElseIf Mid(regIn,cPtr,1)="[" If inClass Then tok=tok+"[" inClass=inClass+1 cPtr=cPtr+1 ElseIf Mid(regIn,cPtr,1)="\" Select Mid(regIn,cPtr+1,1) Case "[","]" tok=tok+"\"+Mid(regIn,cPtr+1,1) Case "n" tok=tok+Chr(13) Case "r" tok=tok+Chr(10) Case "t" tok=tok+Chr(9) Default tok=tok+Mid(regIn,cPtr+1,1) End Select cPtr=cPtr+2 Else tok=tok+Mid(regIn,cPtr,1) cPtr=cPtr+1 EndIf Forever tok=RegEx_GetCharacterClass(tok) ElseIf Mid(regIn,cPtr,1)="\" ;Escape character If Mid(regIn,cPtr+1,1)="n" tok=Chr(13) ElseIf Mid(regIn,cPtr+1,1)="r" tok=Chr(10) ElseIf Mid(regIn,cPtr+1,1)="t" tok=Chr(9) Else tok=Mid(regIn,cPtr+1,1) EndIf cPtr=cPtr+2 Else ;Single character tok=Mid(regIn,cPtr,1) Select tok Case "(":tok=Chr(1) Case ")":tok=Chr(2) Case "|":tok=Chr(3) Case "*":tok=Chr(4) Case "+":tok=Chr(5) Case "?":tok=Chr(6) Case ".":tok=RegEx_GetCharacterClass("...") End Select cPtr=cPtr+1 EndIf If Asc(tok)<9 ;Token is operator If tok=Chr(1) Or RegEx_Precedence(tok)>RegEx_Precedence(RegEx_StackTop(opStack)) RegEx_StackPush opStack,tok Else If tok=Chr(2) While RegEx_StackTop(opStack)<>Chr(1) opt=RegEx_StackPop(opStack) rOp=RegEx_StackPop(valStack) If RegEx_Precedence(opt)<3 Then lOp=RegEx_StackPop(valStack):Else lOp=rOp:rOp="" oNode=New RegEx_NFA oNode\value=opt oNode\nType=Asc(opt) oNode\lNode=Object.RegEx_NFA(lOp) oNode\rNode=Object.RegEx_NFA(rOp) RegEx_StackPush valStack,Handle(oNode) Wend RegEx_StackPop(opStack) ElseIf RegEx_Precedence(tok)<=RegEx_Precedence(RegEx_StackTop(opStack)) While RegEx_Precedence(tok)<=RegEx_Precedence(RegEx_StackTop(opStack)) opt=RegEx_StackPop(opStack) rOp=RegEx_StackPop(valStack) If RegEx_Precedence(opt)<3 Then lOp=RegEx_StackPop(valStack):Else lOp=rOp:rOp="" oNode=New RegEx_NFA oNode\value=opt oNode\nType=Asc(opt) oNode\lNode=Object.RegEx_NFA(lOp) oNode\rNode=Object.RegEx_NFA(rOp) RegEx_StackPush valStack,Handle(oNode) Wend RegEx_StackPush opStack,tok EndIf EndIf Else ;Token is value lNode=New RegEx_NFA lNode\value=tok RegEx_StackPush valStack,Handle(lNode) ;Push to valstack EndIf Wend While RegEx_StackTop(opStack)<>"" opt=RegEx_StackPop(opStack) rOp=RegEx_StackPop(valStack) If RegEx_Precedence(opt)<3 Then lOp=RegEx_StackPop(valStack):Else lOp=rOp:rOp="" oNode=New RegEx_NFA oNode\value=opt oNode\nType=Asc(opt) oNode\lNode=Object.RegEx_NFA(lOp) oNode\rNode=Object.RegEx_NFA(rOp) RegEx_StackPush valStack,Handle(oNode) Wend oNode=Object.RegEx_NFA(RegEx_StackPop(valStack)) FreeBank valStack FreeBank opStack RegEx_SetState(oNode,0) oNode=RegEx_RemoveConcatenations(oNode) lNode=New RegEx_NFA lNode\nType=12 RegEx_Append(oNode,lNode) RegEx_SetState(oNode,0) RegEx_SetRoots oNode If lineStart Then oNode\state=1 If lineEnd Then oNode\state=oNode\state+2 If caseSensitive=0 Then oNode\state=oNode\state+4 Return oNode End Function Function RegEx_IsSimple(regIn$) Local i,char For i=1 To Len(regIn) char=Asc(Mid(regIn,i,1)) Select char Case 40,42,43,46,63,91,92,124:Return False End Select Next Return True End Function Function RegEx_RemoveConcatenations.RegEx_NFA(node.RegEx_NFA) Local lNode.RegEx_NFA While node\nType=8 RegEx_Append(node\lNode,node\rNode) RegEx_SetState(node,0) lNode=node\lNode Delete node node=lNode Wend If node\lNode<>Null Then node\lNode=RegEx_RemoveConcatenations(node\lNode) If node\rNode<>Null Then node\rNode=RegEx_RemoveConcatenations(node\rNode) Return node End Function Function RegEx_Append(parent.RegEx_NFA,child.RegEx_NFA) If parent\state=0 parent\state=1 If parent\rNode=Null parent\rNode=child Else RegEx_Append(parent\rNode,child) EndIf If parent\nType=3 Or parent\nType=6 Then RegEx_Append(parent\lNode,child) EndIf End Function Function RegEx_SetRoots(node.RegEx_NFA) If node\nType=4 Or node\nType=5 RegEx_SetRoot node\lNode,node EndIf If node\lNode<>Null Then RegEx_SetRoots node\lNode If node\rNode<>Null Then RegEx_SetRoots node\rNode End Function Function RegEx_SetRoot(node.RegEx_NFA,root.RegEx_NFA) If node\rNode=Null node\root=root Else RegEx_SetRoot node\rNode,root If node\nType=3 Or node\nType=6 Then RegEx_SetRoot node\lNode,root EndIf End Function Function RegEx_SetState(node.RegEx_NFA,state) node\state=state If node\lNode<>Null Then RegEx_SetState(node\lNode,state) If node\rNode<>Null Then RegEx_SetState(node\rNode,state) End Function Function RegEx_Delete(node.RegEx_NFA) ;Clear an NFA tree when done node\state=1 If node\lNode<>Null If node\lNode\state Then Delete node\lNode:Else RegEx_Delete node\lNode EndIf If node\rNode<>Null If node\rNode\state Then Delete node\rNode:Else RegEx_Delete node\rNode EndIf If node\nType<0 Then FreeBank node\stack Delete node End Function Function RegEx_Precedence(tok$) ;Return an operator's regex_precedence Select Asc(tok) Case 4,5,6 Return 3 Case 8 Return 2 Case 3 Return 1 End Select End Function Function RegEx_GetCharacterClass$(cClass$) ;Returns a full character list from a character class Local invert,cList$,char$,cPtr,i If cClass="..." ;Not an expected input class - this is shorthand for "any character" For i=9 To 127 ;...any character above 8. 1-8 are used as operators cList=cList+Chr(i) Next Return cList EndIf If Left(cClass,1)=":" And Right(cClass,1)=":" cClass=Lower(Mid(cClass,2,Len(cClass)-2)) If Left(cClass,1)="^" invert=True cClass=Mid(cClass,2) EndIf Select cClass Case "alnum":cClass="A-Za-z0-9" Case "word":cClass="A-Za-z0-9_" Case "alpha":cClass="A-Za-z" Case "blank":cClass=" "+Chr(9) Case "cntrl":cClass=Chr(0)+"-"+Chr($1F)+Chr($7F) Case "digit":cClass="0-9" Case "graph":cClass=Chr($21)+"-"+Chr($7E) Case "lower":cClass="a-z" Case "print":cClass=Chr($20)+"-"+Chr($7E) Case "punct":cClass="-!"+Chr(34)+"#$%&'()*+,./:;<=>?@\[\\\]_`{|}~" Case "space":cClass=" "+Chr(13)+Chr(12)+Chr(11)+Chr(10)+Chr(9) Case "upper":cClass="A-Z" Case "xdigit":cClass="A-Fa-f0-9" Default:cClass="" End Select If invert Then cClass="^"+cClass Else If Left(cClass,1)="^" invert=True cClass=Mid(cClass,2) EndIf EndIf For cPtr=1 To Len(cClass) If Mid(cClass,cPtr+1,1)="-" And cPtr<(Len(cClass)-1) For i=Asc(Mid(cClass,cPtr,1)) To Asc(Mid(cClass,cPtr+2,1)) cList=cList+Chr(i) Next cPtr=cPtr+2 Else char=Mid(cClass,cPtr,1) If char="[" char="" cPtr=cPtr+1 While Mid(cClass,cPtr,1)="]" If Mid(cClass,cPtr,1)="\" If Mid(cClass,cPtr+1,1)="]" Then cPtr=cPtr+1 EndIf char=char+Mid(cClass,cPtr,1) cPtr=cPtr+1 Wend char=RegEx_GetCharacterClass(char) ElseIf char="\" If Mid(cClass,cPtr+1,1)="[" char="[" cPtr=cPtr+1 EndIf EndIf cList=cList+char EndIf Next If invert cClass=cList cList="" For i=9 To 127 If Not Instr(cClass,Chr(i)) Then cList=cList+Chr(i) Next EndIf Return cList End Function Function RegEx_StackPush(stack,value$) ResizeBank stack,BankSize(stack)+4 PokeInt stack,BankSize(stack)-4,StrToBank(value) End Function Function RegEx_StackPop$(stack) Local value$,bank If BankSize(stack) bank=PeekInt(stack,BankSize(stack)-4) ResizeBank stack,BankSize(stack)-4 value=BankToStr(bank) FreeBank bank Return value EndIf End Function Function RegEx_StackTop$(stack) If BankSize(stack)>=4 Return BankToStr(PeekInt(stack,BankSize(stack)-4)) EndIf End Function Function RegEx_ClearStacks(node.RegEx_NFA) If node\stack Then FreeBank node\stack:node\stack=0 If node\lNode<>Null Then RegEx_ClearStacks node\lNode If node\rNode<>Null Then RegEx_ClearStacks node\rNode End Function ;=============================================================================== ;=============================================================================== ;General functions ;=============================================================================== Function StrToBank(s$) ;Return a bank containing the binary value of the given string Local i,bank bank=CreateBank(Len(s)) For i=0 To Len(s)-1 PokeByte bank,i,Asc(Mid(s,i+1,1)) Next Return bank End Function Function BankToStr$(bank) ;Return a string containing the ASCII value of the given bank Local i,s$ For i=0 To BankSize(bank)-1 s=s+Chr(PeekByte(bank,i)) Next Return s End Function Function LoadFileBank(filename$) ;Load a file straight into a bank Local bank,file file=ReadFile(filename) bank=CreateBank(FileSize(filename)) ReadBytes bank,file,0,BankSize(bank) CloseFile file Return bank End Function ;===============================================================================
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
|
|
18.11.2010, 00:48
|
#3
|
ПроЭктировщик
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: Поиск Dll регулярных выражений
О великие, объясните неучу что это такое?
|
(Offline)
|
|
18.11.2010, 01:02
|
#4
|
Blitz's Shame !!
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений (для 2,013 пользователей)
|
Ответ: Поиск Dll регулярных выражений
библа для работы с регулярными выражениями !!
Кэп !!
|
(Offline)
|
|
18.11.2010, 01:05
|
#5
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Поиск Dll регулярных выражений
http://ru.wikipedia.org/wiki/Regex
Регуля́рные выраже́ния ( сокр. RegExp, RegEx, жарг. регэ́кспы или ре́гексы) — разновидность ненормативной лексики в русском и других славянских языках. Согласно Кодексу об административных правонарушениях Российской Федерации, публичное употребление RegExp может расцениваться как мелкое хулиганство (статья 20.1[1]), наказываемое штрафом или административным арестом. Использование RegEx считается неприемлемым в приличном обществе и в литературе, и обычно цензурируется в периодической печати, на телевидении, радио и в других СМИ. Несмотря на это, употребление регулярных выражений традиционно очень широко распространено в устной речи у самых разных половозрастных групп общества. Встречается он также и в современной литературе (В. О. Пелевин, В. Г. Сорокин, М. И. Веллер, М. И. Волохов и др.) и песенном творчестве. Известны и более ранние случаи употребления (в том числе в виде «ребусов» с многоточиями) регэкспов в литературе, в частности, в произведениях классических авторов: Пушкина, Маяковского и др. Замысловатое и забористое регулярное выражение называется трёхэтажным брейнфаком, или, например, частная разновидность: большой и малый говнокод и др.
|
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Эти 5 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
|
|
21.11.2010, 04:58
|
#6
|
ПроЭктировщик
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: Поиск Dll регулярных выражений
Сообщение от impersonalis
|
Короч я понял, говоря по русски , это отлов матов в тексте?
|
(Offline)
|
|
21.11.2010, 13:45
|
#7
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Поиск Dll регулярных выражений
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.11.2010, 14:26
|
#8
|
ПроЭктировщик
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений (для 25 пользователей)
|
Ответ: Поиск Dll регулярных выражений
Сообщение от impersonalis
|
Тю, ясно, просто в предыдущем твоем посте ссылка на википедию неадэкватно работает
|
(Offline)
|
|
22.11.2010, 00:38
|
#9
|
Зануда с интернетом
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений (для 20,935 пользователей)
|
Ответ: Поиск Dll регулярных выражений
не: ну мат отлавливать тоже этой штукой можно.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
|
(Offline)
|
|
31.12.2010, 08:39
|
#10
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Поиск Dll регулярных выражений
Я не догнал. Эта поиск Входных и выходных процедур в библе. Но для этого дисаасамблер есть.
|
(Offline)
|
|
31.12.2010, 15:35
|
#11
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: Поиск Dll регулярных выражений
Это поиск текста по маске.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:42.
|