我有一个字符串:
template <typename T, T Value, template <typename> class...> struct ComposeValues;
template <typename T, T Value, template <typename> class First, template <typename> class... Rest>
struct ComposeValues<T, Value, First, Rest...> {
static auto value = First<typename ComposeValues<T, Value, Rest...>::value>::value;
};
template <typename T, T Value, template <T> class Last>
struct ComposeValues<T, Value, Last> : std::integral_constant<T, Last<Value>::value> {}; // Won't compile.
我希望输出如下:
string = "happy.....!!!"
我知道如何替换任何特殊字符的多次出现。它可以按如下方式完成:
new_string = "happy.!"
但我想替换所有特殊字符,例如“,。/ \等等。 一种方法是为每个特殊字符编写它。 但是想知道是否有一种简单的方法可以在一行中为所有特殊字符编写它。
答案 0 :(得分:11)
您可以使用\W
匹配任何非单词字符:
line = re.sub(r'\W+', '.', line)
如果您想要使用相同的特殊字符替换,请使用:
line = re.sub(r'(\W)(?=\1)', '', line)
答案 1 :(得分:6)
我认为你的意思是,
//Check if user has right to access the file. If no, show access denied and exit the script.
$path = $_SERVER['REQUEST_URI'];
$paths = explode('/', path);
$lastIndex = count($paths) - 1;
$fileName = $paths[$lastIndex]; // Maybe add some code to detect subfolder if you have them
// Check if that file exists, if no show some error message
// Output headers here
readfile($filename);