gpt4 book ai didi

xQuery 中用于标记化的正则表达式

转载 作者:行者123 更新时间:2023-12-03 15:59:40 27 4
gpt4 key购买 nike

使用 xPath 我得到这样的文本:

Sed id felis mi; Nam porta lacinia sapien vestibulum egestas; Praesent nec nisl purus, eget mollis metus. Fusce euismod ante id tellus tincidunt dignissim ornare magna blandit. Nunc id risus quam.

我想把它分成两个变量:

var1 = text from the beginning till the 1st dot => 如果这部分包含超过 10 个单词(由空格分隔)并且包含分号 ';',那么它将从开头到第一个分号获取文本.

var2 = 文本的右侧部分。

我从这段代码开始,但它没有给我想要的东西(我还没有处理 10 个单词的条件):

let $left := data(tokenize($doc//div/blockquote/p/text(), '^(.*?)[;|.](.*?)$')[1])
let $right := data(tokenize($doc//div/blockquote/p/text(), '^(.*?)[;|.](.*?)$')[2])

提前致谢。

最佳答案

即使不使用 tokenize() 或任何 RegEx 也可以完成:

   for $s in 'Sed id felis mi; Nam porta lacinia sapien vestibulum egestas; Praesent nec nisl purus, eget mollis metus. Fusce euismod ante id tellus tincidunt dignissim ornare magna blandit. Nunc id risus quam.',
$vBeforeDot in substring-before($s, '.'),
$vBeforeSemiC in substring-before($s, ';')
return
($vBeforeDot
[string-length(normalize-space(.))
- string-length(translate(normalize-space(.), ' ', ''))
le 9
],
$vBeforeSemiC
)[1]

关于xQuery 中用于标记化的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11668370/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com