Έστω ότι έχουμε το dos path:
C:\dir1\dir2\dir3\myfile.txt
ή το unix path
/dir1/dir2/dir3/myfile.txt
Για να τραβήξουμε το όνομα του αρχείου αρκεί η παρακάτω κανονική έκφραση: "[^\\^/]+$" ή οποία μεταφράζεται ως βρες οποιοδήποτε substring χαρακτήρων εκτός του \ και / που βρίσκεις από στο τέλος ($).
Αν χρεισιμοποιούμε το Regular Expressions της βιβλιοθήκης boost σε περιβάλλον C++ ακουλουθεί ένα παράδειγμα (η κανονική έκφραση μπαίνει ως "[^\\\\^/]+$" (επειδή \ = \\)):
#include "boost/regex.hpp"
void main() {
string str="C:\\dir1\\dir2\\dir3\\myfile.txt";
boost::regex reg("[^\\\\^/]+$");
boost::smatch m;
string filename;
if (boost::regex_search(str,m,reg))
// filename <- "myfile.txt"
filename=m.str();
else
filename="not found";
return;
}
boost::regex reg("^[^\\.]+");
boost::regex reg("[^\\.]+$");

Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου