zboinek
Mirasy #javascript #python mam problem.
Walczę z tym już dłuższy czas niestety jestem nadal słaby into #regex
Czy ktoś może podpowiedzieć jak powinno wyglądać wyrażenie żeby z:

System ID: 0135049598 (costam2); partner ID: 0135024127 (costam1)
System Serial Number: 20015686 (costam2)
System Rev: H3
System Storage Configuration: Single-Path HA
System ACP Connectivity: NA

Wyciągnąć za pomocą wyrażenia
System Serial Number: 20015686 - z tym że value ma być tylko numerek.

Próbowałem z lookahead itd ale nadal nie udaje mi się zaznaczyć tylko interesującej mnie wartości
/(?!System Serial Number\: )(\d+)/g
Non stop zaznacza mi nie tylko ten numer ale wszystkie inne numery również
  • Najlepsze
  • Wszystkie komentarze
GaiusBaltar
@zboinek: /System Serial Number\: (\d+)/g
venomik
Zaznacza całość, ale zwróci Ci tylko numer (nawiasy okrągłe to zapewniają).
filozof900
@zboinek: no tak ma byc, zeby dostac numerek musisz wziac pierwsza grupe czyli match[1]
GaiusBaltar
@zboinek: Nie wiem jakiego API używasz, ale powienieneś mieć po wykonaniu regexa tabelę z matchami. Match 0 to całość, ale match 1 będzie pierwszą onawiasowaną formułą, czyli (\d+). Negative lookahead (?!) bywa różnie wspierany.
GaiusBaltar
@zboinek:

str="System ID: 0135049598 (costam2); partner ID: 0135024127 (costam1)\nSystem Serial Number: 20015686 (costam2)\nSystem Rev: H3\nSystem Storage Configuration: Single-Path HA\nSystem ACP Connectivity: NA";
reg=/System Serial Number\: (\d+)/g ;
matches = reg.exec(str);
console.log(matches[1]);

20015686
asunez
@zboinek: Taki sidenote - określ, w jakim języku używasz regex'a, bo różne silniki wspierają różne konstrukcje regexowe. Między pythonem a JS są chyba spore różnice (m.in. jeśli chodzi o lookaroundy).

Co do głównego pytania: wystarczy regex w stylu System Serial Number: (\d+). Po znalezieniu match'a w swoim języku będziesz musiał się odnieść do jego grup (w samym regexie definiowaną przez nawiasy okrągłe) i wyciągnąć tą pierwszą. Niektóre implementacje przyjmują,
zboinek
zboinek Autor
0
@GaiusBaltar: zaznacza całość, a ja nie chce mieć w value tego system Serial Number
zboinek
zboinek Autor
0
@filozof900: To znaczy, że muszę coś jeszcze dodać czy nawiasy zapewnią, że dostane tylko to?
zboinek
zboinek Autor
0
@GaiusBaltar: Jesli chodzi o API to w praktyce próbuje zaznaczyć pole w splanku i nadać mu wartość
zboinek
zboinek Autor
0
Dzieki wszystkim za pomoc, rozjaśniliście sprawę :)
Udało się ;) Splunk działa jeszcze trochę inaczej - matcha robi się poprzez wskazanie pola w nawiasach tj. nadania mu nazwy :)
m.....y
m.....y
@zboinek: ile płacisz za konsultacje?
zboinek
zboinek Autor
0
m.....y
m.....y
@zboinek: co może za darmo rozwiazywać twoje problemy xd