regex filter: if string is invalid utf-8, ignore it
This commit is contained in:
@@ -56,13 +56,18 @@ inline Regex make(StringT &&s, boost::regex_constants::syntax_option_type flags)
|
|||||||
template <typename StringT>
|
template <typename StringT>
|
||||||
inline bool search(StringT &&s, const Regex &rx)
|
inline bool search(StringT &&s, const Regex &rx)
|
||||||
{
|
{
|
||||||
return
|
try {
|
||||||
# ifdef BOOST_REGEX_ICU
|
return
|
||||||
boost::u32regex_search
|
# ifdef BOOST_REGEX_ICU
|
||||||
# else
|
boost::u32regex_search
|
||||||
boost::regex_search
|
# else
|
||||||
# endif // BOOST_REGEX_ICU
|
boost::regex_search
|
||||||
(std::forward<StringT>(s), rx);
|
# endif // BOOST_REGEX_ICU
|
||||||
|
(std::forward<StringT>(s), rx);
|
||||||
|
} catch (std::out_of_range &) {
|
||||||
|
// Invalid UTF-8 sequence, ignore the string.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
|||||||
Reference in New Issue
Block a user