- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 PrettyTime NLP 从列表中查找日期。
Example
ABC High School March 5, 2016
XYZ High School 08/20/2016 Gym
当我使用 PrettyTimeNLP 进行解析时,它会为我提供这种格式的日期列表。
2016 年 8 月 20 日星期六 10:05:27 美国东部时间
我的问题是是否可以解析字符串,然后在日期之前或之后将其拆分,以便我可以拥有
string1 = 'XYZ High School'
stirng2 = '08/20/2016'
string3 = 'Gym'
我知道我可以使用 RegEx 来完成这项工作,但这里的示例很简单。我的文档将有 1-10 页长,并包含各种格式的日期。
任何有关如何操作 PrettyTime 的示例将不胜感激。
最佳答案
PrettyTimeParser.parseSyntax()
提供的 DateGroup
包含回答您的问题所需的一些信息。其余信息可根据原文确定。
@GrabResolver(name='sonatype-snapshots', root='https://oss.sonatype.org/content/repositories/snapshots/')
@Grab('org.ocpsoft.prettytime:prettytime-nlp:4.0.1.Final')
import org.ocpsoft.prettytime.nlp.PrettyTimeParser
def list = [
'ABC High School March 5, 2016',
'XYZ High School 08/20/2016 Gym'
]
def parser = new PrettyTimeParser()
list.collect {
[rawText: it, dateGroup: parser.parseSyntax(it).head()]
}.collect {
def before = 0..<it.dateGroup.position
def after = it.dateGroup.position + it.dateGroup.text.size()..<it.rawText.size()
[
before: it.rawText[before].trim(),
date: it.dateGroup.dates.head(),
dateString: it.dateGroup.text,
after: it.rawText[after].trim()
]
}
注意:不要在 Grails 中使用 @Grabs,您应该已经设置了依赖项。
上面的示例使用整个原始文本以及 Pretty Time 找到日期的位置以及解析为日期的文本来创建两个范围:一个用于日期之前的文本,另一个用于日期之后的文本。日期后的文本。然后将这两个范围用于整个原始文本以提取三个组成部分。好的...四,我添加了日期
。输出如下所示:
[
[
before:ABC High School,
date:Sat Mar 05 11:45:56 EST 2016,
dateString:March 5, 2016,
after:
],
[
before:XYZ High School,
date:Sat Aug 20 11:45:56 EDT 2016,
dateString:08/20/2016,
after:Gym
]
]
关于Java/Grails - PrettyTime NLP 可以拆分非日期部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36064371/
处理新闻RSS feeds 并尝试将其与耗时一起显示(例如 2 分钟前、1 个月前)。我正在使用PrettyTime Android 的库。它适用于此类日期格式 Thu, 04 Jan 2018 11
我正在使用 PrettyTime NLP 从列表中查找日期。 Example ABC High School March 5, 2016 XYZ High School 08/20/2016 Gym
在我的 android 应用程序中,我使用以下代码获取将日期转换为可读句子的字符串(下图)。 swift 4.2 有什么办法可以做到这一点吗? private String getDate(Stri
我不知道我在这个标签中是否做错了什么。 PrettyTime 库应该只打印数据的文本版本,例如: 10 months ago 但我不明白为什么这个自定义标记会在 HTML 输出中的“漂
我是一名优秀的程序员,十分优秀!