如何在SQL查询中匹配字符串中的模式?

时间:2018-11-16 16:30:59

标签: java mysql sql regex

嗨,我有一个字符串,它是DB中列的值。 “ Java(简单)_New = AB_U17484_JAVA00”

我想编写一个SQL查询来检查字符串是否在下面

_New = {Box1} __ {Box2} _ {Box3}

Box1始终是仅两个字符的字母,Box 2仅为7个字符,仅是数字和字母,Box 3必须与JAVA及其后的任何字符相匹配。例如JAVA%

如何在sql查询中使用正则表达式实现这一目标

2 个答案:

答案 0 :(得分:0)

在您的示例中,box2中有六个字符,而不是七个。 所以我使它符合您的示例。但是,如果您应该匹配七个字符,则可以将框2的匹配项更改为(\w{7})

但是在正则表达式下面,请匹配您提供的字符串。

_New=([A-Z]{2})_(\w{6})_(JAVA.+)

您会在1-3组中找到匹配的框1-3

希望它可以帮助您

答案 1 :(得分:0)

这与丹尼尔(Daniel)的答案类似,但我对您的规格有稍微不同的解释。

_NEW=[a-zA-Z]{2}__[a-zA-Z0-9]{7}(_JAVA).*

此正则表达式与“ _NEW =“,

匹配

然后输入2个大写或小写字母

然后是“ __”,因为您需要2个下划线

然后将任何大写/小写字母或数字7次(如果需要,显然更改为6)

然后是“ _JAVA”

那么还有其他任何东西,包括其他任何东西。即:“ _ JAVA”

这里是proof/visualisation