【问题标题】:Parsing a string containing "\" in Racket在 Racket 中解析包含“\”的字符串
【发布时间】:2014-07-26 06:42:51
【问题描述】:

我正在尝试从包含“\”的 Windows 路径字符串中提取标记。

我尝试过 string-split 和 string->list,但是其中一个路径元素以“d”开头,所以我收到“read: unknown escape sequence \d in string”错误。

编辑:路径的格式为:“\\aaaa\bbbb\cccc\dddd\eeee....”。例如,我需要提取“eeee”部分。 “string->”函数在“dddd”元素上阻塞,出现上述错误。在 Windows 7 上,Racket 5.3.3。例如:(string-split path), (string->list path)

【问题讨论】:

  • 你是如何构建这个字符串的?您应该使用 Racket 的特定路径程序,例如(build-path "c:" "Documents" "data.txt")(split-path)等。另外,请注意,要在字符串中包含 \,您需要将其放置两次,因为 \ 是转义字符。
  • 另见 explode-pathstring->some-system-pathsome-system-path->string。否则,我们需要更多细节:代码示例?您是否在 Windows 上运行代码?
  • @vince 如果您使用build-pathexplode-path,那么您的程序也会自动在 OS X 和 Linux 上运行。

标签: windows racket filepath


【解决方案1】:

反斜杠在字符串中用作转义符。如果您输入(read-line) 并输入一个反斜杠,则结果为"\\"

对于用于测试程序的硬编码字符串,您需要像这样编写"\\\\aaaa\\bbbb\\..."

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 2020-04-28
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多