|
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