【发布时间】:2017-01-22 12:29:27
【问题描述】:
罐头上写着什么。有没有更聪明的方法来替换不需要regex 的boost::fs::path 中的空格?
编辑为例:
_appBundlePath = boost::fs::path("/path/with spaces/here");
regex space(" ");
string sampleFilename = regex_replace((_appBundlePath/"audio/samples/C.wav").string(), space, "\\ ");
问题:有没有办法避免使用正则表达式?对我来说似乎有点矫枉过正。
EDIT 2 我的问题是通过 libpd 将字符串传递给 Pure Data 时。 PD 会将空格解释为分隔符,因此我的字符串将被分割成多个符号。用双引号括起来是行不通的,我什至不确定转义空格会不会,但值得一试。
【问题讨论】:
-
X/Y problem 是当您询问有关所选解决方案路径而不是目标的问题时。在这种情况下,问题似乎是 X/.../Z,因为您询问了您认为希望避免的解决方案路径,但没有指定目标。
-
有任何特定的 API 调用吗?
-
不确定你的意思……
-
"EDIT 2 我的问题是在将字符串传递给 Pure Data via libpd"时。那是一个图书馆。您希望使用什么函数。因为它是决定需要/接受什么输入的函数。
-
我明白了。鉴于我正在处理 C++ 包装器,这就是我正在调用的方法 (github.com/libpd/libpd/blob/master/cpp/PdBase.cpp#L237),它又调用此函数 (github.com/libpd/libpd/blob/master/libpd_wrapper/z_libpd.c#L331)。不过,老实说,我确实看不出这与我原来的问题有什么关系。
标签: c++ boost escaping whitespace boost-filesystem