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ż
@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.
@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ą,
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 :)
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ż
źródło: comment_DT30pOtkYNyq4AZ11BjyM6qrVpbZosnk.jpg
Pobierzstr="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]);
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ą,Udało się ;) Splunk działa jeszcze trochę inaczej - matcha robi się poprzez wskazanie pola w nawiasach tj. nadania mu nazwy :)
Komentarz usunięty przez autora Wpisu