diff --git a/OpenSim/Common/Component.cpp b/OpenSim/Common/Component.cpp index 50e731334c..02b3b0988e 100644 --- a/OpenSim/Common/Component.cpp +++ b/OpenSim/Common/Component.cpp @@ -1174,20 +1174,23 @@ void Component::updateFromXMLNode(SimTK::Xml::Element& node, int versionNumber) } if (versionNumber <= 30516) { + static const std::regex s_ConnecteeNamePattern("(socket_|input_)(.*)(_connectee_name)"); + static const std::regex s_ConnecteeNamesPattern("(input_)(.*)(_connectee_names)"); + // Rename xml tags for socket_*_connectee_name to socket_* std::string connecteeNameString = "_connectee_name"; for (auto iter = node.element_begin(); iter != node.element_end(); ++iter) { auto tagname = iter->getElementTag(); - if (std::regex_match(tagname, std::regex("(socket_|input_)(.*)(_connectee_name)"))) { + if (std::regex_match(tagname, s_ConnecteeNamePattern)) { auto pos = tagname.find(connecteeNameString); if (pos != std::string::npos) { tagname.replace(pos, connecteeNameString.length(), ""); iter->setElementTag(tagname); } } - else if (std::regex_match(tagname, std::regex("(input_)(.*)(_connectee_names)"))) { + else if (std::regex_match(tagname, s_ConnecteeNamesPattern)) { auto pos = tagname.find(connecteeNameString); if (pos != std::string::npos) { tagname.replace(pos, connecteeNameString.length()+1, "");