【发布时间】:2019-04-19 21:08:48
【问题描述】:
您好,我有一个字符串,它是数据库中列的值。 “Java(简单)_New=AB_U17484_JAVA00”
我想写一个sql查询来检查字符串是否有下面
_New={Box1}__{Box2}_{Box3}
Box1 总是两个字符,只有字母,Box 2 是 7 个字符,只有数字和字母,Box 3 必须匹配 JAVA 和它后面的任何字符..like JAVA%
如何在 sql 查询中使用正则表达式来实现这一点
【问题讨论】:
您好,我有一个字符串,它是数据库中列的值。 “Java(简单)_New=AB_U17484_JAVA00”
我想写一个sql查询来检查字符串是否有下面
_New={Box1}__{Box2}_{Box3}
Box1 总是两个字符,只有字母,Box 2 是 7 个字符,只有数字和字母,Box 3 必须匹配 JAVA 和它后面的任何字符..like JAVA%
如何在 sql 查询中使用正则表达式来实现这一点
【问题讨论】:
在您的示例中,box2 中有六个字符而不是七个。
所以我让它符合你的例子。但是如果你应该匹配七个字符,你可以将框 2 匹配更改为 (\w{7})
但下面的正则表达式匹配您提供的字符串。
_New=([A-Z]{2})_(\w{6})_(JAVA.+)
你在第 1-3 组中得到匹配框 1-3
希望对你有帮助
【讨论】:
这与丹尼尔的答案相似,但我对您的规范的解释略有不同。
_NEW=[a-zA-Z]{2}__[a-zA-Z0-9]{7}(_JAVA).*
这个正则表达式匹配 "_NEW=",
然后是 2 个大写或小写字母
然后是“__”,因为你需要 2 个下划线
然后任何大写/小写字母或数字 7 次(如果需要,显然更改为 6)
然后是“_JAVA”
然后是任何数量的其他任何东西,包括其他任何东西。即:“_JAVA”
【讨论】: