Sql 如何正则表达式匹配多个项
我有一个Sql 如何正则表达式匹配多个项,sql,regex,database,oracle,Sql,Regex,Database,Oracle,我有一个评论表,如下所示: 注册号 评论 1. 重量不能超过40公斤 2. 你不能使重量超过31公斤 3. 不要超过94公斤 4. 最佳重量为45公斤 5. 不要超过62公斤 6. 重量不能超过7000g 您可以从字符串中提取数字。只有一个,然后检查字符串是否与某些模式相似: select regexp_substr(comm, '[0-9]+') from reviews where regexp_like(comm, '(exceed|go over|above).*[0-9]+ ?(kg|
评论
表,如下所示:
注册号
评论
1.
重量不能超过40公斤
2.
你不能使重量超过31公斤
3.
不要超过94公斤
4.
最佳重量为45公斤
5.
不要超过62公斤
6.
重量不能超过7000g
您可以从字符串中提取数字。只有一个,然后检查字符串是否与某些模式相似:
select regexp_substr(comm, '[0-9]+')
from reviews
where regexp_like(comm, '(exceed|go over|above).*[0-9]+ ?(kg|k.g)');
是一个dbfiddle。您可以从字符串中提取数字。只有一个,然后检查字符串是否与某些模式相似:
select regexp_substr(comm, '[0-9]+')
from reviews
where regexp_like(comm, '(exceed|go over|above).*[0-9]+ ?(kg|k.g)');
是一个dbfiddle。您可以使用更健壮的正则表达式来提取数字 我没有oracle DB,但请尝试以下操作:
SELECT
r_id,
REGEX_SUBSTR(comment, '([0-9]+) ?(k\.?g\.?|kilos)', 1, 1, 'i') as "max weight"
FROM reviews;
您可以在中看到此正则表达式与给定字符串匹配。这也解释了正则表达式的含义
我们还打开不区分大小写的标志,以便正确处理任何大小写
编辑:检查EXCEND、go over等。请注意,我们已将位置参数从1更改为2,因为我们现在关心第二个捕获组
SELECT
r_id,
REGEX_SUBSTR(comment, '(exceed|go over|above)\h*([0-9]+) ?(k\.?g\.?|kilos)', 1, 2, 'i') as "max weight"
FROM reviews;
您可以使用更健壮的正则表达式来提取数字 我没有oracle DB,但请尝试以下操作:
SELECT
r_id,
REGEX_SUBSTR(comment, '([0-9]+) ?(k\.?g\.?|kilos)', 1, 1, 'i') as "max weight"
FROM reviews;
您可以在中看到此正则表达式与给定字符串匹配。这也解释了正则表达式的含义
我们还打开不区分大小写的标志,以便正确处理任何大小写
编辑:检查EXCEND、go over等。请注意,我们已将位置参数从1更改为2,因为我们现在关心第二个捕获组
SELECT
r_id,
REGEX_SUBSTR(comment, '(exceed|go over|above)\h*([0-9]+) ?(k\.?g\.?|kilos)', 1, 2, 'i') as "max weight"
FROM reviews;
这种方法的问题是,如果句子是
,那么如果你的背部受伤,你就不应该超过重量,所以我想要的是不应该超过@ZoeyMalkov。您可以根据您的特定字符串对其进行调整。您必须自定义此项。这个版本适用于您提出的问题。我有一个关于您的解决方案的问题。您是如何匹配r\u id
4
的。没有空间吗?它是94公斤
@ZoeyMalkov。空间是可选的,因为?
。这种方法的问题是,如果句子是,那么如果你的背部受伤,你就不应该超过重量,所以我想要的是不应该超过@ZoeyMalkov。您可以根据您的特定字符串对其进行调整。您必须自定义此项。这个版本适用于您提出的问题。我有一个关于您的解决方案的问题。您是如何匹配r\u id
4
的。没有空间吗?它是94公斤
@ZoeyMalkov。空格是可选的,因为?
。该空格在r\u id
4
上匹配,这不应该匹配,因为我们还必须检查句子是否包含不能超过,过去时等术语,excel上文
在陈述千克数之前,在r\u id
4
上匹配的千克数不应该匹配,因为在陈述千克数之前,我们还必须检查句子中是否有类似于不能超过
,过去时
,excel上文
的术语