Это может показаться дубликатом, но как ответ на ваш вопрос,
Ваше регулярное выражение должно быть:
/(.*)\/\?$/
или
/(.*)(?=\/\?$)/
Пример: [ 119]
$input = "boringinterestingboring/?";
print "Use \$1: $1\n" if($input =~ /(.*)\/\?$/);
print "Use \$1: $1\n" if($input =~ /(.*)(?=\/\?$)/);
print "Use \[112]amp;: [112]amp;\n" if($input =~ /.*(?=\/\?$)/);
Вывод:
Use $1: boringinterestingboring
Use $1: boringinterestingboring
Use [113]amp;: boringinterestingboring
Различные пути, один и тот же пункт назначения. Но в любом случае, вам также следует сбежать ?
или поместить его в []
.
class IWantToBeFriendsWithMyStruct
{
template <typename T, typename U>
friend struct MyStruct;
};
Работы в VS2008, и позволяют MyStruct получать доступ к классу.
Согласно этому сайту, правильный синтаксис был бы
class IWantToBeFriendsWithMyStruct
{
template <typename T, typename U> friend struct MyStruct;
}