动态二维码制作,网站推广优化之八大方法,大学生app开发经费预算表,浙江建设信息港打不开使用正则表达式通过用例查询 Postgres 数据库#xff1a; 
正则表达式#xff08;又名 Regex#xff09; 正则表达式是一个强大的工具#xff0c;广泛用于模式匹配和文本操作。  几乎所有编程语言都支持它们#xff0c;并且经常用于文本提取、搜索和匹配文本等用例。  正则…使用正则表达式通过用例查询 Postgres 数据库 
正则表达式又名 Regex 正则表达式是一个强大的工具广泛用于模式匹配和文本操作。  几乎所有编程语言都支持它们并且经常用于文本提取、搜索和匹配文本等用例。  正则表达式匹配以“^”字符开头以“$”字符结尾。  
例子  假设我们要验证给定的字符串是否是有效的 Visa 信用卡号。  输入字符串为“4111111111111111”。  我们的正则表达式为“4[0–9]{12}(?:[0–9]{3})?” 4[0–9]{12}正则表达式的这一部分基本上表示该模式以 4 开头后跟包含 (0–9) 的 12 个数字。现在总共有 13 位数字。(?:[0–9]{3})旧的 Visa 卡有 13 位数字因此这代表可选的 3 位数字。  
现在基础知识已经清楚了让我们讨论如何使用正则表达式进行数据库查询。 
正则表达式与数据库 使用正则表达式可以使 SQL 查询动态化并提高性能。  在本文中我们将使用支持正则表达式的 Postgres 数据库。  
我们需要记住并非所有数据库都支持正则表达式。 Postgres 
我们可以使用 ~(TILDE) 运算符和 .*通配符运算符来实现 PostgreSQL 中的正则表达式。 
列表 ~用于匹配正则表达式的字符串区分大小写 
# 搜索所有符合模式的电子邮件 postgres# select email from accounts where email ~ ^\S\S\.\S$; 
2. !~用于字符串不匹配正则表达式区分大小写。 
# 搜索所有与模式不匹配的电子邮件 postgres# select email from accounts where email !~ ^\S\S\.\S$; 
3. ~*用于字符串匹配正则表达式不区分大小写。 
# s以不区分大小写的方式搜索与模式匹配的所有电子邮件 postgres# select email from accounts where email !~ ^\S\S\.\S$; 
4. !~*用于不匹配正则表达式的字符串不区分大小写。 
# 搜索所有与模式不匹配的邮件不区分大小写 postgres# select email from accounts where email !~ ^\S\S\.\S$; 
用例通过品牌名称查找信用卡 我们的输入表是credit_card其中包含卡号和到期日期。  
表中记录 
postgres# select * from credit_card; id |   card_number    | expiry_date | customer_id ------------------------------------------------ 11 | 2344323432112222 | 2023-04-10  |          10 10 | 2344323432112422 | 2023-04-12  |          10 13 | 4111111111111111 | 2023-04-11  |          10 14 | 4111111131111111 | 2023-05-11  |          10 15 | 4111111131119111 | 2023-05-12  |          10 17 | 378282246310005  | 2023-05-09  |          10 18 | 378282246710005  | 2024-05-09  |          10 21 | 4111111131119    | 2025-05-12  |          10 (8 rows) 
查询Visa信用卡  postgres# select * from credit_card where card_number ~ ^4[0-9]{12}(?:[0-9]{3})?$; 
Visa信用卡均以4开头旧卡为13位新卡为16位。我们的查询返回预期的 4 张以 4 开头的卡片。 
美国运通 postgres# select * from credit_card where card_number ~ ^3[47][0-9]{13}$; 
所有Amex信用卡均以3开头第二位数字为4或7。总数字为15。我们的查询返回预期的 3 个结果。 
用例查找所有与 emailId 模式不匹配的电子邮件 
在正则表达式中我们正在寻找characterscharacters.character例如abcgmail.com模式。 我们正在过滤所有不符合模式的电子邮件的查询。 
select email from accounts where email !~ ^\S\S\.\S$; 
我们的输出包含不具有上述定义模式的电子邮件。 
postgres# select email from accounts where email !~ ^\S\S\.\S$; email ------------- abctest.com (1 row) 
https://www.jdon.com/70336.html