BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Programmieren (http://www.black-board.net/board.php?boardid=4)
--- C Regex suchmuster !!!! (http://www.black-board.net/thread.php?threadid=21937)


Geschrieben von Siles am 01.03.2006 um 11:11:

  Regex suchmuster !!!!

hi leute,

ich brauch mal wieder eure hilfe ^^

ich will in C ein kleines tool schreiben das mir zb ip-adressen in unterschiedlichster form findet!

in per ist des ja ganz einfach per blubb =~ suchmuster ....

aber wie mach ich das in c?

ich glaub ich stell mich mal wieder zu blöd an!

ich habe mir ein char array erstellt und darin ersmal eine 0 angelegt jetzt fidet der alle adressen wo eine 0 drin vorkommt!!!

aber wie kann ich jetzt ein ganzes muster speichern, so das eine richitige ip adresse gesucht wird?

schonmal besten dank im vorraus!!

mfg siles



Geschrieben von Black Star am 01.03.2006 um 11:35:

 

"man regex.h", wenn du die glibc verwendest.
In einer anstaendigen C-Bibliothek sollten Regex-Routinen enthalten sein.
Unter Linux sind das
code:
1:
2:
3:
4:
5:
int    regcomp(regex_t *restrict, const char *restrict, int);
size_t regerror(int, const regex_t *restrict, char *restrict, size_t);
int    regexec(const regex_t *restrict, const char *restrict, size_t,
           regmatch_t[restrict], int);
void   regfree(regex_t *);



Geschrieben von Siles am 02.03.2006 um 20:15:

 

okay danke!

aber nen beispiel wär nicht schlecht!

vorallem hab ich nen problem mit dem abspeichern des musters in einer variablen

zb:
\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0
-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0
-9][0-9]?)\b

mfg siles



Geschrieben von phlox81 am 02.03.2006 um 20:51:

 

code:
1:
2:
const char *str_regex ="\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b"

Das musst du dann entsprechend an die regex funktion übergeben.
Problematisch kann sein das aus \ -> \\ im string wird,
evtl. lohnt es sich auch, das aus einer Datei einzulesen.
Damit hätte man das Problem nicht, und wäre noch flexibel.

phlox



Geschrieben von Siles am 06.03.2006 um 09:16:

 

okay danke , werd ich nachher gleich mal antesten!

mfg siles


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH