【发布时间】:2018-03-16 14:21:13
【问题描述】:
由于@kjhughes 在我上一个问题Regex repeat expression 中的精彩评论和链接到精彩帖子Never parse markup with regex 在我的应用程序中,我一直在更改尽可能多的不需要的正则表达式,通过编写完整的 XPath 来删除内容。
但是对于以下问题,我想知道是否还有一种方法可以用 XPath 解决它:
数据Name: Herr FirstName LastName
XPath 到目前为止://body//div/div/table/tr/td/div/table/tr[3]/td/div/table/tr/td/p[1]/span/text()
我在这里使用以下正则表达式:(?<=Herr |Frau ).*
这是因为我只想要数据 Firstname LastName 我再次要求一个名称的原因是这是两封不同的邮件,我正在使用不同的模板抓取并希望应用程序是模块化的。
目前我仍然经常在应用程序中这样做,我只是使用正则表达式删除所有不需要的文本,因此我想知道 XPath 是否也可以。通过这种方式,我可以了解更多关于 XPath 抓取的信息,并且不会伤害不圣洁的孩子 :)
【问题讨论】:
-
当您有纯文本时,您可以使用正则表达式或其他字符串操作方法。
-
XPath 和正则表达式不是相互排斥的。使用 XPath 2.0(或更高版本),您可以使用带有
matches()、replace()、analyze-string()和tokenize()的正则表达式。 w3.org/TR/xpath-functions-31/#func-matches -
请将此问题独立于您的上一个问题。这意味着您需要在此处提供示例数据。