gpt4 book ai didi

sql - sql regexp字符串以“.0”结尾

转载 作者:行者123 更新时间:2023-12-04 11:24:42 24 4
gpt4 key购买 nike

我想判断一个正数字符串是否以“ .0”结尾,因此我编写了以下sql:
select '12310' REGEXP '^[0-9]*\.0$'。结果为true。我想知道为什么会得到结果,因为我在“”之前使用“ \”。逃离。
因此,我将另一个写为select '1231.0' REGEXP '^[0-9]\d*\.0$',但是这次的结果是false
谁能告诉我正确的模式?

最佳答案

regexp中的点(。)具有特殊含义(任何字符),并且如果需要字面点,则需要转义:

 select '12310' REGEXP '^[0-9]*\\.0$';


结果:

false


使用双斜杠在Hive中转义特殊字符。斜杠具有特殊含义,并用于\ 073(分号),\ n(换行符),\ t(制表符)等字符。这就是为什么转义时需要使用双斜杠的原因。同样对于字符类数字,请使用 \\d

hive> select '12310.0' REGEXP '^\\d*?\\.0$';
OK
true


同样,方括号内的字符也不需要双斜杠转义:可以使用 [.]代替 \\.

关于sql - sql regexp字符串以“.0”结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59071214/

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