SELECT name
FROM players
WHERE name ~ '(.*){8,}'
这很简单,但我似乎无法得到它。 我有一个名字列表,我必须过滤掉至少8个字符的那些...但我仍然得到完整列表。 我做错了什么?
谢谢! :)
答案 0 :(得分:1)
(.*){8,}
正则表达式表示匹配任何零个或多个字符8次或更多次。
如果您想匹配任何8个或更多字符,请使用.{8,}
。
但是,使用character_lenth
更适合此任务:
char_length(string)
或character_length(string)
int 字符串中的字符数
CREATE TABLE table1
(s character varying)
;
INSERT INTO table1
(s)
VALUES
('abc'),
('abc45678'),
('abc45678910')
;
SELECT * from table1 WHERE character_length(s) >= 8;
请参阅online demo