Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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
Regex 如何使用正则表达式匹配SQL Server或BigQuery(标准方言)中的记录_Regex_Sql Server 2008 - Fatal编程技术网

Regex 如何使用正则表达式匹配SQL Server或BigQuery(标准方言)中的记录

Regex 如何使用正则表达式匹配SQL Server或BigQuery(标准方言)中的记录,regex,sql-server-2008,Regex,Sql Server 2008,我尝试在表上做一些数据准备,我尝试了SQL Server 2008 R2 Express和BigQuery: select location, REGEXP_CONTAINS(location, "(?!.*UK),\s(\w{2})$") from `bigquery-public-data.stackoverflow.users` limit 10; 我的桌子如下: create table location ( city varchar(50), country v

我尝试在表上做一些数据准备,我尝试了SQL Server 2008 R2 Express和BigQuery:

select location, REGEXP_CONTAINS(location, "(?!.*UK),\s(\w{2})$")  
from `bigquery-public-data.stackoverflow.users` 
limit 10;
我的桌子如下:

create table location
(
    city varchar(50),
    country varchar(10)
)

insert into location (city) values ('Rumney, NH, US')
insert into location (city) values ('Hickory Hills, IL')
insert into location (city) values ('Patchogue, NY')
insert into location (city) values ('Wilton, NH')
insert into location (city) values ('Cedarville University, OH')
insert into location (city) values ('Shopshire, UK')
insert into location (city) values ('Dreilinden, Germany')
insert into location (city) values ('Jarjis, Tunisia')
insert into location (city) values ('Casca/RS, Brasil')
我想选择美国城市的所有记录,我使用的正则表达式是:

(?!.*UK),\s(\w{2})$
这是证据:

我在MS SQL中的查询如下所示:

SELECT * 
FROM location 
WHERE  city LIKE '(?!.*UK),\s(\w{2})$'
它什么也不返回

我还尝试在模式周围添加
%
PATINDEX
,但仍然没有得到任何结果

---根据@marc的指示,MS SQL不接受真正的正则表达式

在BigQuery中:

select location, REGEXP_CONTAINS(location, "(?!.*UK),\s(\w{2})$")  
from `bigquery-public-data.stackoverflow.users` 
limit 10;
我在编辑器中看到一个错误(将双引号更改为单引号时出现相同错误):

我错过了什么


如果您能帮助解决这个问题,非常感谢。

SQL Server并不真正支持正则表达式。。。。。。支持非常有限(
PATINDEX
LIKE
-仅此而已)。谢谢你,marc,在BigQuery中呢?你需要避开正则表达式中的
\
,例如,
“(?!*UK),\\s(\\w{2})$”
谢谢你,尼克,查询现在已经验证了,我收到一条新的错误消息:
无法解析正则表达式:perl运算符无效:(?!