gpt4 book ai didi

regex - 如何使用 XQuery 中的 replace() 函数替换一个或多个空白字符?

转载 作者:行者123 更新时间:2023-12-05 02:24:08 24 4
gpt4 key购买 nike

我需要使用 replace() 函数在 XQuery 中用单个破折号替换多个空白字符。

$input: 'abc   def   123'
Desired Output: 'abc-def-123'

我试过:

replace($input, '/s*', '-')

replace($input, '/s.*', '-')

但是这些都不起作用。我知道 normalize-space() 但我想要一个更通用的函数。

谢谢! - 丹

最佳答案

你把斜杠弄错了:

replace($input, '\s*', '-')

此外,根据 XQuery 中的实现,这可能会在每两个非空格字符之间插入一个破折号(因为 \s* 允许 0 个字符,因此允许任何空匹配)。

[ 编辑: 正如 Oliver Hallam 在评论中指出的那样, XQuery specification实际上要求如果模式可以导致零长度匹配则引发错误。]

因此,您可能希望/不得不使用 +(这意味着 1 个或多个字符):

replace($input, '\s+', '-')

顺便说一句,您的其他尝试(使用固定斜杠)将匹配单个空白字符及其后的任何内容。

关于regex - 如何使用 XQuery 中的 replace() 函数替换一个或多个空白字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16024486/

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