2

我有一个 xpath 表达式,我想用它从包含此类字符串的 td 中提取 City 和 date:

City(may contain spaces and may be missing, but the following space is always present) on 2013/07/20

到目前为止,我得到了以下用于提取日期的解决方案,该解决方案部分有效:

//path/to/my/td/text()/replace(.,'(.*) on (.*)','$3')

这在 City 存在时有效,但是当 City 丢失时,我会因此得到“2013/07/20”。我认为这是因为第一个捕获组失败了,所以组的数量不同。我怎样才能让这个表达式起作用?

4

1 回答 1

0

我没有完全检查你的正则表达式,但乍一看还不错。无论如何,如果您只想通过提取“on”之后的文本来获取日期,您也可以采用更简单的方法:

//path/to/my/td/text()/substring-after(.,'on ')

编辑:或者您可以采用子字符串方式并选择内容的最后 10 个字符:

//path/to/my/td/text()/substring(., string-length(.) - 9)
于 2013-07-21T00:19:57.650 回答