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++ STL容器string(二):删除与插入、数据查找、自定义输入
java·开发语言·c++
剑神一笑1 天前
Linux top 命令深度解析:进程监控的性能优化实战
linux·运维·正则表达式
jimy11 天前
C语言中的inline function specifier(函数说明符、关键字)
c语言·开发语言
赏金术士1 天前
Kotlin 协程底层原理(Continuation)详解
java·开发语言·kotlin
ZGi.ai1 天前
私有化大模型接入企业系统:SSO+权限+API网关完整方案
java·开发语言·大模型·私有化部署·sso·企业架构
一念春风1 天前
记事本(C#)
开发语言·c#
fox_lht1 天前
第十二章 泛型、接口和生命周期
开发语言·后端·rust
jayson.h1 天前
正则表达式:从文件名提取器件编号
开发语言·python·正则表达式
Dxy12393102161 天前
JS如何获取元素高度
开发语言·javascript·ecmascript
凯瑟琳.奥古斯特1 天前
页面置换算法详解与对比
开发语言·分布式·职场和发展