Help: regex

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Location
Brăila
Se da textul:

ABCD
EFGH

Am nevoie de un regex compatibil PHP care sa imi gaseasca
CD
EF
dar nu si
CD EF

Cum fac?
Mentionez ca linia noua este de tip <CR><LF>.

Am incercat:
~CD.EF~s = imi gaseste si "CD EF", cu spatiu in loc de linie noua
~CD$EF~m = nu trece mai departe de $
~CD$^EF~m = nu trece mai departe de $
~CD^EF~m = esec total, se opreste dupa D

Help!

PS:
~CD$.EF~ms = Merge! WTF?! Sa imi explice si mie cineva de ce merge si ce caracter imi gaseste acolo punctul.
 

miahi

Wizzard
Sugar daddy
Joined
Aug 1, 2004
Location
Unreal Estate, Ankh-Morpork, Discworld
Ideea e că $ și ^ nu mănâncă din caractere, doar poziționează (de-aia le zice ancore). La tine se oprește la $ corect, dar nu face match pe următorul caracter - tu te aștepți ca următorul caracter după $ să fie E, dar pentru că $ nu mănâncă din caractere, următorul caracter e de fapt \r (pe care nu îl pui în pattern => nu face match).

CD$\r\nEF e echivalent cu CD\r\nEF în acest caz.
 

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Location
Brăila
Da, ma asteptam ca $ si ^ sa corespunda unui caracter. Abia acum am inteles de ce nu mergea. Multumesc.
 

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Location
Brăila
Help! iar...
Am nevoie de un regex care sa gaseasca textul din ultima celula a unui tabel HTML de pe fiecare rand. Mentionez ca \r\n sunt puse aiurea prin HTML.

Am incercat
~<td>.*?</td>[^<]*?</tr>~gms
dar <td> imi gaseste prima celula, degeaba pun ? dupa .*, ca acel ? are efect doar asupra </td> care urmeaza.
 

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Location
Brăila
Nu merge cu [^<]. Incercasem eu deja. Continutul celulei poate avea diverse tag-uri, gen <p>, <div>.
Si nu merge nici (?!>) din acelasi motiv.

OK, deci randurile din tabel arata asa:
Code:
<tr><td>
                <p>
                  <strong>Operating System</strong>
                </p>
              </td><td>
                <p>
                  <strong>Maximum Security Impact</strong>
                </p>
              </td><td>
                <p>
                  <strong>Aggregate Severity Rating</strong>
                </p>
              </td><td>
                <p>
                  <strong>Updates Replaced*</strong>
                </p>
              </td></tr>
            <tr><td colspan="4">
                <p>
                  <strong>Windows Server 2003</strong>
                </p>
              </td></tr>
            <tr><td>
                <p>
                  <a href="https://www.microsoft.com/downloads/details.aspx?familyid=F2B9D541-9BE0-4E81-A948-48F810E1A863">Windows Server 2003 Service Pack 2</a> <br />(3067505)</p>
              </td><td>
                <p>Elevation of Privilege</p>
              </td><td>
                <p>Important</p>
              </td><td>
                <p>3061518 in <a href="http://go.microsoft.com/fwlink/?LinkId=536690">MS15-055</a> </p>
              </td></tr>
            <tr><td>
                <p>
                  <a href="https://www.microsoft.com/downloads/details.aspx?familyid=92AFF2B2-7D6E-4D29-BC2E-111F08BEFDAA">Windows Server 2003 x64 Edition Service Pack 2</a> <br />(3067505)</p>
              </td><td>
                <p>Elevation of Privilege</p>
              </td><td>
                <p>Important</p>
              </td><td>
                <p>3061518 in <a href="http://go.microsoft.com/fwlink/?LinkId=536690">MS15-055</a> </p>
              </td></tr>
Va rog, nu radeti! :tongue:
Imi trebuie ultima celula, aia cu MS15-055.
 

jarod

Super Moderator
Sugar daddy
Joined
Nov 27, 2003
Location
Arad
Nu există alt pattern în afară de "ultima celulă"? Gen MSniștecifre-iarășicifre?
 

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Location
Brăila
Regex in Total Commander:
Cum fac sa corectez un string care contine ora din GMT in ora locala (GMT+3)? Adica sa adaug 3 ore la cifrele alea?
 

IceCub

Membru Senior
Sugar daddy
Joined
Jun 27, 2005
Location
/dev/urandom
Marius, o solutie "intortocheata" (dar pe care am mai aplicat-o cu succes) e sa faci un "dir /b >> fisier.txt" dupa care importi fisierul txt in Excel, intr-o alta coloana prelucrezi cum vrei sa arate noile nume si exporti totul intr-un fisier *.bat cu comenzi de genul "ren <nume coloana1> <nume coloana2>"
 
Last edited:

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Location
Brăila
Se da string-ul:
xxx 123 456 789 xxx
Cum fac sa obtin toate grupurile de cifre, dar fara sa repet \d{3} de 3 ori?
Am incercat:
xxx(?:\s(\d{3}))+\sxxx
dar scoate doar ultimul grup.
 

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Location
Brăila
Da, dar trebuie sa verific inceputul si sfarsitul randului (acele xxx-uri), ca sunt si randuri care nu ma intereseaza. Nu le-am scris degeaba.
 
Top Bottom