Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: perl compatible regular expression nodig voor atftpd  (gelezen 882 keer)

perl compatible regular expression nodig voor atftpd
« Gepost op: 2014/04/11, 18:28:55 »
ik heb even een probleempje, ik heb al een tijdje een PXE Bootserver en deze is nu omgezet van tftpd-hpa naar atftpd, hierdoor werkt mijn Windows PE optie niet meer.
alles wat in de tftp root map zelf staat kan ik laden, maar tftpd-hpa gebruikte reguliere expressies gebaseerd op egreg, atftpd gebruik echter PCRE.

nu ken ik van perl de naam en daar houd het wel ongeveer op.
om Windows PE te laden moet eerst startrom.n12 gestart worden, hierna vraagt deze bootmrg.exe op welke boot.wim laad.
probleem is echter dat hij voor bootmrg.exe geen path opgeeft, en voor boot.wim zou hij dit wel doen, maar dan wel met \ gescheiden.
hierdoor kan atftpd deze bestanden dus niet vinden.

is iemand hier bekend met egreg en PCRE die dit voor mij kan omzetten naar PCRE?:
re ^pxeboot\.n12 windows/pxe/default/pxeboot.n12
re ^pxeboot\.com windows/pxe/default/pxeboot.com
re ^pxeboot\.0 windows/pxe/default/pxeboot.n12
re ^bootmgr\.exe windows/pxe/default/bootmgr.exe
r ^\\Boot\\ windows/pxe/default/
r ^\\boot\\ windows/pxe/default/
r ^Boot/ windows/pxe/default/
r ^/Boot/ windows/pxe/default/
r ^boot/ windows/pxe/default/
r ^/boot/ windows/pxe/default/
r ^\\ windows/pxe/default/
rg \\ /
ik moet eerlijk zeggen dat ik dus geen flauw idee heb wat hier staat, maar het werkt in tftpd-hpa wel dus de conversie is goed.

ik zeg vast, als iemand over google begint ontplof ik, als ik het daar kon vinden had ik niet hoeven vragen, ik zoek als vanaf 2 uur.


ADSL? nee, neem ADHD, dat is pas snel!

Offline bram103

  • Lid
Re: perl compatible regular expression nodig voor atftpd
« Reactie #1 Gepost op: 2014/04/11, 19:54:51 »
Ik ben niet bekend met egreg en PCRE maar wel een beetje met reguliere expressies (regex) en in het stukje code wat je geeft zie ik in elk tweede 'woord' (als je de spaties als scheiding neemt) een regex. Met een regex kun je testen of een string matched met een patroon  (de regex).  ^ in een regex betekent 'de string moet beginnen met, in dit geval pxeboot.n12 De \ voor de punt betekent dat er letterlijk een punt moet staan omdat een punt in een regex een bijzondere betekenis heeft moet de \ er voor staan.

Ook de \ heeft een bijzondere betekenis dus ook daarvoor moet een \ als je hem letterlijk wil gebruiken.  ^\\Boot\\ betekent dus moet beginnen met \Boot\ en ^\\ betekent moet beginnen met \

\\ betekent dat een string waar tenminste 1 \ in staat matched.

Regex is een bijzonder krachtig mechanisme waarmee je, als je het trucje eenmaal doorhebt, heel veel kan doen.

Meer over regex http://www.regular-expressions.info/quickstart.html
« Laatst bewerkt op: 2014/04/11, 19:58:58 door bram103 »