Help: regex

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Location
Brăila
Nu asa. Vreau fiecare grup de cifre ca element separat.
In dreapta sa apara asa:
Group 1: 123
Group 2: 456
Group 3: 789
 

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Location
Brăila
Asa am facut, dar din cauza ca in practica textul sursa este muuult mai complicat, a iesit asta:
Code:
preg_match('~\s*Round\s*Sample\s*xpt\s*Result\s*diff%\s*z-score(?:\r|\n)+\s*(\d\d.\d)\s*.*\s{2,}(\d+(?:\.\d+){0,1})\s{2,}(\d+(?:\.\d+){0,1})\s{2,}(?:-){0,1}(\d+(?:\.\d+){0,1}%)\s{2,}(?:-){0,1}(\d+(?:\.\d+){0,1})\s*(?:\r|\n)+\s*(\d\d.\d)\s*.*\s{2,}(\d+(?:\.\d+){0,1})\s{2,}(\d+(?:\.\d+){0,1})\s{2,}(?:-){0,1}(\d+(?:\.\d+){0,1}%)\s{2,}(?:-){0,1}(\d+(?:\.\d+){0,1})\s*(?:\r|\n)+\s*(\d\d.\d)\s*.*\s{2,}(\d+(?:\.\d+){0,1})\s{2,}(\d+(?:\.\d+){0,1})\s{2,}(?:-){0,1}(\d+(?:\.\d+){0,1}%)\s{2,}(?:-){0,1}(\d+(?:\.\d+){0,1})\s*~mi',$file,$match)
Dracu' l-o mai descifra data viitoare cand vor trebui modificari.
 

IceCub

Membru Senior
Sugar daddy
Joined
Jun 27, 2005
Location
/dev/urandom
Am nevoie de putin ajutor cu o expresie regulata.
Pe portul serial vine:
+039540P+039540P+039540P+039540P+039540P+039540P+039540P+039540P+039540P

Trebuie sa introduc un line break pentru face situl sa arate:
+039540P
+039540P
+039540P

Multumesc anticipat.
 
Last edited:

miahi

Wizzard
Sugar daddy
Joined
Aug 1, 2004
Location
Unreal Estate, Ankh-Morpork, Discworld
Întrebarea e care e pattern-ul; întotdeauna începe cu + și se termină cu P și în rest sunt cifre? E într-adevăr nevoie de o expresie regulată, sau pur și simplu vrei un "înlocuiește P+ cu P<br/>+" (caz în care nu ai chiar nevoie de o expresie regulată, un replace all îți rezolvă problema).
 

IceCub

Membru Senior
Sugar daddy
Joined
Jun 27, 2005
Location
/dev/urandom
Ideal ar fi sa imi ramana doar cifrele astfel:
456345
345234
345234

Dar ma multumesc sa sa imparta pe cate o linie noua
 

miahi

Wizzard
Sugar daddy
Joined
Aug 1, 2004
Location
Unreal Estate, Ankh-Morpork, Discworld
Ok, deci în funcție de limbaj faci un replace all pe string-ul ăla după "P+" și înlocuiești cu "<br/>" sau \n, ce-ți trebuie. Doar funcții de string replacement, fără regex stuff.

Regex-urile doar caută match-uri, by default majoritatea engine-urilor de regex nu au și funcționalitate de replace, ci e dată de limbajul pe care-l folosești. Iar în cazul tău oricum poți folosi replace-ul "simplu" și nu-ți mai bați capul :biggrin:.
 
Last edited:
Top Bottom