regex - 更改 oracle 正则表达式以接受带有连字符“-”的电子邮件域
问题描述
我一直在使用正则表达式来检查 Oracle SQL 查询中的电子邮件验证:
SELECT *
FROM [Table]
WHERE
REGEXP_LIKE(
EMAIL,
'^('
-- Unquoted local-part
|| '[a-z0-9!#$%&''*+/=?^_{|}~-]+(\.[a-z0-9!#$%&''*+/=?^_{|}~-]+)*'
-- ^^
-- Allow a dot but always expect a
-- non-dot after it.
-- Quoted local-part
|| '|"('
-- Unescaped characters in the quotes
|| '[]' || CHR(1) || '-' || CHR(8) || CHR(11) || CHR(12) || CHR(14) || '-!#-[^-'||CHR(127)||']'
-- Escaped characters in the quotes
|| '|\\[' || CHR(1) || '-' || CHR(9) || CHR(11) || CHR(12) || CHR(14) || '-' || CHR(127) || ']'
|| ')*"'
|| ')'
-- Match at symbol at end of local-part
|| '@'
--Domain Part
||'(([A-Z0-9]{1,63})[A-Z0-9]+(-[A-Z0-9]+)*\.){1,8}[A-Z]{2,63}$',
-- Case insensitive
'i'
)
“ t-online.de ”是一个有效的顶级域地址。如何更改下面的正则表达式域部分,以接受 RFC5322 说“连字符 - 是有效的,只要它不是第一个或最后一个字符”。
'(([A-Z0-9]{1,63})[A-Z0-9]+(-[A-Z0-9]+)*\.){1,8}[A-Z]{2,63}$
谢谢你们
解决方案
推荐阅读
- android - 在 Flutter 中的操作栏和标题之间添加一些空格
- java - 硒测试用例从主菜单中选择子菜单
- plugins - Matomo - 位置提供程序插件和访问详细信息
- c - 正整数相乘得到 0 (__int64)
- c++ - SSH 在 QProcess 中不起作用,但在控制台中起作用
- python-2.7 - exe文件运行期间出错但是.py文件运行良好
- c# - WPF DataGrid:使每一行的列类型动态化
- excel - 如果为 TRUE,则一致地显示相应的值
- reactjs - 如果我将对象作为依赖项传递,则 useEffect 中的无限循环
- javascript - 为什么 TypeScript 看不到库中的枚举?