小编one*_*ror的帖子

为什么preg_match会返回一些空元素?

我已经写了正则表达式^(?:([1-5])|([1-5]) .*|.* ([1-5])|.* ([1-5]) .*)$以匹配独立数字1-5,或者由字符串的其余部分分隔至少一个空格的数字.我在在线服务中测试了它,结果是数字本身.但是,在使用代码时

preg_match('/^(?:([1-5])|([1-5]) .*|.* ([1-5])|.* ([1-5]) .*)$/', 'order 12314124 5', $matches);
Run Code Online (Sandbox Code Playgroud)

我明白了:

Array ( [0] => order 12314124 5 [1] => [2] => [3] => 5 )
Run Code Online (Sandbox Code Playgroud)

[0]元素是完全匹配,这很好.我预计[1]元素为5,但它是空的,还有另一个空元素.为什么会出现这些空元素?

php regex

6
推荐指数
1
解决办法
263
查看次数

用于检查值是否在另一个表中不存在的 SQL 约束

在我的 PostgreSQL 9.4数据库中,我有一个包含唯一值fields列的表name

我正在创建一个fields_new具有类似结构(此处不重要)和一列的新表name。我需要一种方法来约束name要插入到fields_new不存在于fields.name.

例如,如果fields.name包含值'color''length',我需要防止fields_new.name包含'color''length'值。因此,换句话说,我需要提供name两个表中的列之间没有任何重复值。约束应该是双向的。

sql postgresql database-design constraints unique-constraint

3
推荐指数
1
解决办法
6355
查看次数