Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server从字符串中提取匹配字符串_Sql Server - Fatal编程技术网

Sql server SQL Server从字符串中提取匹配字符串

Sql server SQL Server从字符串中提取匹配字符串,sql-server,Sql Server,我用JavaScript创建了一个正则表达式 /(E)-(\d)(\d*)-(\d)(\d*)/g 有人能帮我在SQL Server中创建相同的正则表达式吗 我必须从字符串中提取所有匹配的模式 Enquiry no is (E-4380-01) and E-4380-02 .... 输出应该是 (E-4380-01) E-4380-02 SQL Server没有自己的正则表达式实现,但您可以使用CLR将System.Text.RegularExpressions.regex包含到SQL

我用JavaScript创建了一个正则表达式

/(E)-(\d)(\d*)-(\d)(\d*)/g 
有人能帮我在SQL Server中创建相同的正则表达式吗

我必须从字符串中提取所有匹配的模式

Enquiry no is (E-4380-01) and E-4380-02 ....
输出应该是

(E-4380-01)
E-4380-02

SQL Server没有自己的正则表达式实现,但您可以使用CLR将System.Text.RegularExpressions.regex包含到SQL Server中。SQL将如下所示:

DECLARE@SourceText NVARCHAR(MAX)=N'(E-4380-01)E-4380-02';
声明@regexpatern NVARCHAR(MAX)=N'(?E-\d+-\d+);
声明@IsCaseSensitive位=0;
挑选*
来自regex.Match(@SourceText、@regexpatern、@IsCaseSensitive);
结果将是:

+-----------+-----------+------+-----------+---------+---------+
|GroupNumber|IndexNumber|Length|MatchNumber|Value    |GroupName|
+-----------+-----------+------+-----------+---------+---------+
|1          |1          |9     |0          |E-4380-01|number   |
|1          |12         |9     |1          |E-4380-02|number   |
+-----------+-----------+------+-----------+---------+---------+

是我写的。您可以使用它。

默认情况下,SQL Server不支持正则表达式。在这种情况下,您可能希望在数据库之外处理此问题。