C++ Исходник Pattern to bytes function implementation using regex

Searching for myself
Пользователь
Статус
Оффлайн
Регистрация
29 Сен 2021
Сообщения
212
Реакции[?]
69
Поинты[?]
11K
Посмотрел как конвертируют в
Пожалуйста, авторизуйтесь для просмотра ссылки.
и
Пожалуйста, авторизуйтесь для просмотра ссылки.
, мне не понравилось, вот реализация с использованием std::regex
PatternToBytes:
//  Classes, algorithms and iterators to support regular expression processing
#include <regex>

// std::optional class template
#include <optional>

// std::basic_string class template
#include <string>

// std::vector container
#include <vector>

std::vector< std::optional< std::uint8_t > > PatternToBytes( const std::string &strPattern ) const noexcept {
        // Declare a vector of uint8_t to store the bytes
        std::vector< std::optional< std::uint8_t > > vecBytes;

        // Declare a std::smatch object to store the results of a regex search
        std::smatch MatchResults;

        // Use a regular expression to match hexadecimal values (e.g. "AA", "FF") or '?' characters
        const std::regex RegexPattern( "([0-9a-fA-F]{2}|\\?)" );

        // Declare an iterator to the beginning of the string
        auto Iterator = strPattern.cbegin( );

        // Search for a hexadecimal number in the string, starting at the iterator
        while ( std::regex_search( Iterator, strPattern.cend( ), MatchResults, RegexPattern ) ) {
            // If the matched value is '?', store a null optional in the output vector
            if ( MatchResults[ 1U ] == '?' )
                vecBytes.emplace_back( std::nullopt );
            else
                // Otherwise, convert the hexadecimal string to a number and store it in the output vector
                vecBytes.emplace_back( std::stoul( MatchResults[ 1U ], nullptr, 16 ) );

            // Update the iterator to the end of the match
            Iterator = MatchResults[ 0U ].second;
        }

        // Return the vector of converted bytes
        return vecBytes;
    }
Референсы:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,523
Реакции[?]
572
Поинты[?]
8K
что ты там собрался via регэкс искать? ты по рантайму охуеешь. юзлесс пост.
 
Searching for myself
Пользователь
Статус
Оффлайн
Регистрация
29 Сен 2021
Сообщения
212
Реакции[?]
69
Поинты[?]
11K
Nike.lua
Олдфаг
Статус
Оффлайн
Регистрация
13 Окт 2020
Сообщения
2,748
Реакции[?]
1,466
Поинты[?]
2K
Я же не сказал что это пропер метод🫡, просто такой вариант реализации тоже может быть
Так а зач тебе юзать медленный паттернскан? В симпле он реализован хорошо, добавить бы только cd-style паттерны и заебись
 
Забаненный
Статус
Оффлайн
Регистрация
18 Дек 2022
Сообщения
65
Реакции[?]
10
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я же не сказал что это пропер метод🫡, просто такой вариант реализации тоже может быть
это не вариант реализации, это вариант пустой траты время + искать по regex будет дольше чем дефолт
 
артём диджитал дизайнер
Участник
Статус
Оффлайн
Регистрация
10 Окт 2020
Сообщения
490
Реакции[?]
477
Поинты[?]
66K
это не вариант реализации, это вариант пустой траты время + искать по regex будет дольше чем дефолт
и тем не менее
это работает == вариант реализации, держу в курсе, не важно нравится кому-либо этот вариант или же нет.
 
Сверху Снизу