Boost logo

Boost Users :

From: Robert (boost_at_[hidden])
Date: 2005-07-12 17:21:49


Can someone help check me on this code? The problem is that if I use a
RegEx of:

^.*(?=.{4,})(?=(?:.*[A-Z]))(?=(?:.*[a-z])).*$

The results aren't as expected. I should expect that the password of Aa1
would fail, and yet it is passing the regex_match.

I borrowed this code from someone else's project and my concern is that
Boost_RegEx doesn't work correctly with wide characters. Is this the case,
or is there something else that is causing the problem.

------------------------------------------------------------------------
PUNICODE_STRING Password;

wcsncpy(wszPassword, Password->Buffer, Password->Length/sizeof(wchar_t));
wszPassword[Password->Length] = 0;

wregex wrePassword(DEFAULT_REGEX);

wstrPassword = wszPassword;

WriteToLog(L"PasswordFilter: Going to run match"); /// Prepare iterators
wstring::const_iterator start = wstrPassword.begin();
wstring::const_iterator end = wstrPassword.end();
                
match_results<wstring::const_iterator> what;
unsigned int flags = match_default;
bMatch = regex_match(start, end, what, wrePassword);
if (bMatch) {
        WriteToLog(L"PasswordFilter: Password matches specified RegEx");
} else {
        WriteToLog(L"PasswordFilter: Password does NOT match specified
RegEx");
}


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net