首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ParseKit语法解析时间戳

使用ParseKit语法解析时间戳
EN

Stack Overflow用户
提问于 2012-03-15 20:23:07
回答 2查看 249关注 0票数 2

我有一个关于ParseKit和解析时间戳的相当简单的问题……如何强制点/句点的符号性质。

例如,如果我试图解析2008-01-25,我可以使用类似date = /\d{4}/ '-' /\d{2}/ '-' /\d{2}/的代码。事实上,ParseKit附带的date.grammar就可以做到这一点(有趣的是,除非添加@symbolState='-';,否则提供的语法在DemoApp中不起作用,但是我离题了……)

但是,如果我想要解析一个带点的日期,我该怎么办?例如,2008.01.252008-01-25-12.34.45。我曾尝试将'.'添加到@symbolState指令中,但一直被忽略。请注意,目前我依赖DemoApp来测试我的语法……我不确定这是否有什么不同。

任何想法都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-16 09:31:22

这里是ParseKit的开发者。

首先,感谢您对date.grammar文件中的bug的提醒。我已经修好了。

至于你的主要问题,我非常确定你正在尝试的东西在ParseKit上是不可能的,直到现在。

也就是说,ParseKit的记号赋予器(PKTokenizer)不能生成only整数Number记号。数字总是被标记为浮点数,这意味着不可能将像3.14这样的输入解析为三个单独的标记3 (数字)、. (符号)、14 (数字)。相反,它将始终被标记为3.14

好消息:我用一个新方法添加了这个功能:

代码语言:javascript
复制
-[PKNumberState allowsFloatingPoint]

默认为YES

我添加了一个匹配的令牌器指令,您可以在ParseKit语法中使用它,如下所示:

代码语言:javascript
复制
@allowsFloatingPoint = NO;

注意,你需要在Google Code上查看最新的主干头部才能看到这个特性。

因此,下面是一个示例日期语法,它大致完成了您使用新功能所要求的功能:

代码语言:javascript
复制
@symbolState = '.';
@allowsFloatingPoint = NO;

@start  = date;

date    = year dot month dot day;

year    = /\d{4}/;
month   = /\d{2}/;
day     = /\d{2}/;

dot    = '.';
票数 2
EN

Stack Overflow用户

发布于 2012-03-16 10:45:01

我想知道是否一个更简单的想法是让parseKit简单地将日期解析为字符串,然后将其传递给NSDate::dateWithNaturalLanguageString:locale: orNSDate::dateWithNaturalLanguageString:进行处理。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9719612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档