Skip to content

Commit

Permalink
Merge pull request #11902 from Minty-Meeo/regex-best-practices
Browse files Browse the repository at this point in the history
static const std::regex
  • Loading branch information
AdmiralCurtiss committed Jun 8, 2023
2 parents e3cae72 + 1df482d commit e8c87dc
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 8 deletions.
2 changes: 1 addition & 1 deletion Source/Core/Core/Debugger/PPCDebugInterface.cpp
Expand Up @@ -443,7 +443,7 @@ std::string PPCDebugInterface::GetDescription(u32 address) const
std::optional<u32>
PPCDebugInterface::GetMemoryAddressFromInstruction(const std::string& instruction) const
{
std::regex re(",[^r0-]*(-?)(0[xX]?[0-9a-fA-F]*|r\\d+)[^r^s]*.(p|toc|\\d+)");
static const std::regex re(",[^r0-]*(-?)(0[xX]?[0-9a-fA-F]*|r\\d+)[^r^s]*.(p|toc|\\d+)");
std::smatch match;

// Instructions should be identified as a load or store before using this function. This error
Expand Down
Expand Up @@ -100,7 +100,9 @@ void BroadbandAdapterSettingsDialog::SaveAddress()
switch (m_bba_type)
{
case Type::Ethernet:
if (!std::regex_match(bba_new_address, std::regex("([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})")))
{
static const std::regex re_mac_address("([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})");
if (!std::regex_match(bba_new_address, re_mac_address))
{
ModalMessageBox::critical(
this, tr("Broadband Adapter Error"),
Expand All @@ -111,7 +113,7 @@ void BroadbandAdapterSettingsDialog::SaveAddress()
}
Config::SetBaseOrCurrent(Config::MAIN_BBA_MAC, bba_new_address);
break;

}
case Type::BuiltIn:
Config::SetBaseOrCurrent(Config::MAIN_BBA_BUILTIN_DNS, bba_new_address);
break;
Expand Down
11 changes: 6 additions & 5 deletions Source/Core/InputCommon/ControlReference/ExpressionParser.cpp
Expand Up @@ -102,10 +102,10 @@ std::string Lexer::FetchDelimString(char delim)

std::string Lexer::FetchWordChars()
{
// Valid word characters:
std::regex rx(R"([a-z\d_])", std::regex_constants::icase);

return FetchCharsWhile([&rx](char c) { return std::regex_match(std::string(1, c), rx); });
return FetchCharsWhile([](char c) {
return std::isalpha(c, std::locale::classic()) || std::isdigit(c, std::locale::classic()) ||
c == '_';
});
}

Token Lexer::GetDelimitedLiteral()
Expand Down Expand Up @@ -134,7 +134,8 @@ Token Lexer::GetRealLiteral(char first_char)
value += first_char;
value += FetchCharsWhile([](char c) { return isdigit(c, std::locale::classic()) || ('.' == c); });

if (std::regex_match(value, std::regex(R"(\d+(\.\d+)?)")))
static const std::regex re(R"(\d+(\.\d+)?)");
if (std::regex_match(value, re))
return Token(TOK_LITERAL, value);

return Token(TOK_INVALID);
Expand Down

0 comments on commit e8c87dc

Please sign in to comment.