ABAP 正则表达式

复制代码
DATA(lv_email) = 'user.name@example.com'.

IF matches( val = lv_email
            regex = '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}' ).
  WRITE: / '邮箱格式正确'.
ELSE.
  WRITE: / '邮箱格式错误'.
ENDIF.

将校验分为三部分 用 @ 跟 . 分割为三部分

第一部分就是 'user.name'

第二部分就是 'example'

第三部分 'com'

其中第一部分[ ] 中的内容校验了字母大写A-Z 小写a-z及字符' ._%+- ' 都可以出现在第一部分

第一部分[ ]后的 + 号 表示 至少出现一个字符 例:a@example.com 就是符合要求的

第二部分也是同理

在[ ] 外的 . 要用转义符转义 转义符:\

第三部分 {2,} 表示至少出现两次 因为 后缀可能是.cn

如果第一部分确定 是 最少5位那可以写成

复制代码
DATA(lv_email) = 'user.name@example.com'.

IF matches( val = lv_email
            regex = '[A-Za-z0-9._%+-]{5,}@[A-Za-z0-9.-]+\.[A-Za-z]{2,}' ).
  WRITE: / '邮箱格式正确'.
ELSE.
  WRITE: / '邮箱格式错误'.
ENDIF.

如果第一部分确定 是 最少5位 最多十位那可以写成

复制代码
DATA(lv_email) = 'user.name@example.com'.

IF matches( val = lv_email
            regex = '[A-Za-z0-9._%+-]{5,10}@[A-Za-z0-9.-]+\.[A-Za-z]{2,}' ).
  WRITE: / '邮箱格式正确'.
ELSE.
  WRITE: / '邮箱格式错误'.
ENDIF.
相关推荐
不爱吃炸鸡柳1 分钟前
算法复杂度从入门到精通:时间与空间复杂度全解析
开发语言·c++·算法
游乐码11 分钟前
c#lambad表达式
开发语言·c#
weixin_4080996727 分钟前
python请求文字识别ocr api
开发语言·人工智能·后端·python·ocr·api·ocr文字识别
不爱吃炸鸡柳32 分钟前
C++ 进阶:unordered_map 与 unordered_set 超全详解(哈希容器实战)
开发语言·c++·哈希算法
码云数智-大飞43 分钟前
Go并发编程避坑指南:如何彻底解决死锁(Deadlock)问题
开发语言
无语......1 小时前
安装uv并管理 Python / 包
开发语言·python·uv
道剑剑非道1 小时前
【C++ 仿 MFC 反射系统】
开发语言·c++·mfc
Elastic 中国社区官方博客2 小时前
在 Elastic 中使用 OpenTelemetry 内容包可视化 OpenTelemetry 数据
大数据·开发语言·数据库·elasticsearch·搜索引擎
C+++Python2 小时前
如何学习Python的应用领域知识?
开发语言·python·学习
疯狂打码的少年2 小时前
【Day12 Java转Python】Python工程的“骨架”——模块、包与__name__
java·开发语言·python