繁体   English   中英

使用正则表达式在 SQL Server 中进行模式匹配

Pattern match in SQL Server using regular expressions

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试在 SQL Server (2019) 列中识别这些模式:

78878001

1-1321-32

1321-12

121-5489-19

403-3-XXXXX

规则是:

  • 只有数字或
  • 只有数字和连字符(至少一个连字符一个,但没有具体数字)或数字、连字符和字母 X

我试过这个:

    SELECT * FROM [TABLE1] WHERE [Part no] like  '[0-9]%-%'

但它返回一些不正确的值,例如:

  1. 702-3-01960 09150006125

700-3-02474 方舟 4787-PA-51H-99999

1 个回复

如果您至少使用 SQL Server 2012,我认为您可以使用 try_parse 解决这个问题。 以您的数据为例:

create table #testing1 (val varchar(100))

INSERT INTO #testing1 
VALUES
('78878001'),
('1-1321-32'),
('1321-12'),
('702-3-01960 09150006125'),
('700-3-02474 Arkds 4787-PA-51H-99999'),
('121-5489-19'),
('403-3-XXXXX')

select * 
from #testing1
where try_parse(replace(replace(val, '-', ''), 'X', '') AS int) is not null
1 SQL Server:具有重复模式的正则表达式

我的表中有一列,其中包含emailId的格式是每个字符后跟一个* 。 例如: 第一个字符应该是字母,其余字符可以是字母数字,后跟@' then *`,依此类推。 为什么需要这个:我需要验证数据库中的数据是否符合要求的格式(如上所述)。 并找出不符合条件的行。 我努力了 ...

2 使用正则表达式匹配SQL查询

我想匹配可能具有不同参数的相同类型的SQL查询。 例如 和 是具有不同参数的相同类型的查询。 在第一个示例中,基本上任何东西都可以代替“轴承滚珠”和“ BA-8327”。 参数可以是字符串,数字或带空格或不带空格的日期。 我尝试了以下表达式: 它没有按预期工作。 ...

3 在正则表达式中不匹配任何内容或模式

我正在尝试验证iOS程序中的字段:我需要匹配电话号码,但是该字段是可选的。 我以为使用正则表达式匹配号码也可以验证是否没有电话号码: 然后我想如何在一个有效数字或根本没有数字的地方匹配呢? 意思是,在0-9,+,-,*范围内匹配4到14个字符或不匹配。 该网站显示了该模式的 ...

4 使用正则表达式计算匹配模式的 n-gram

如果我使用: 正如预期的那样,我得到: 现在我想修改正则表达式,以便也能够计算 2 克和 3 克,同时考虑到标点​​符号和换行符。 特别是,在这种情况下,我期望的结果是: 如何修改正则表达式才能做到这一点? ...

5 有没有办法使用正则表达式来匹配引号之外的文本模式?

如标题中所述,有一种方法可以使用正则表达式来匹配出现在引号之外的文本的文本模式。 理想情况下,给出以下示例,我希望能够匹配引号之外的逗号,而不是引号中的逗号。 这是一些文本,后跟“带引号的文本!” 要么 这是一些文本,后跟“带引号的文本”和更多“带引号的文本”! ...

2009-04-08 17:34:37 9 613   regex
6 如何使用正则表达式获得与模式完全匹配的单词[关闭]

我需要获得与我使用正则表达式给出的特定模式匹配的单词。 例如,如果模式是“ABC”,我需要获得单词串“ABC”,如果它在输入内容中。 内容: 这是ABC冠军。 主题名称是ABCDE。 我的书上有名字为BE-ABC的页面。 ABC是标签名称。 我应该把AB ...

7 如何使用正则表达式递归匹配模式?

字符串可以是以下之一: 我想匹配无限数量的“a(x,y)”。 我如何使用正则表达式来做到这一点? 这是我所拥有的: 它只匹配“a(x,y)”的两个递归。 ...

10 SQL Server和正则表达式

以下选项中哪个更好? SQL Server搜索中的正则表达式,因为新版本支持CLR对象? 全文搜索? Lucene.net结合SQL Server? 我们的数据库将拥有数百万条记录,我们将提供类似Google的搜索选项,就像Google搜索任何内容一样,我们只会 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM