【发布时间】:2017-09-21 19:16:08
【问题描述】:
我正在与字符串拆分作斗争。我想通过 wildcards 将字符串分割成一个 slice,但是这个 slice 也应该包含这个通配符。
例如:/applications/{name}/tokens/{name} 应拆分为 [/applications/ {name} /tokens/ {name}] 等。
这是我写的一个示例代码,但它不能正常工作,我也觉得不好。
https://play.golang.org/p/VMOsJeaI4l
有一些示例路线需要测试。方法splitPath 将路径拆分为部分并显示:之前和之后。
【问题讨论】:
-
您是否有不想使用
strings.Split的原因? golang.org/pkg/strings/#Split -
ye 因为我希望包含
separator,在我的情况下分隔符可以不同,例如{name}/{surname}。你不知道{}之间是什么字符串以及它们有多少个 -
我仍然认为使用strings.Split 会得到最好的结果,但你可能对编写解析器感兴趣;它们很有趣,Rob Pike 有一个比较著名的演讲,解释如何编写自定义词法扫描器,这也很有趣。
-
我不确定我是否理解您的要求,但这就是您想要的吗? play.golang.org/p/qcqBgld2_I
-
是的,快速浏览一下就完美了,我认为它可以按我的意愿工作。谢谢,我现在将像@JohnWeldon 提到的那样做解析器/词法分析器解决方案,然后比较这两者的性能