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.
相关推荐
wuqingshun3141592 小时前
谈一下Daemon线程
java·开发语言
☆5662 小时前
C++中的策略模式进阶
开发语言·c++·算法
Yupureki2 小时前
《Linux系统编程》14.库的制作与原理
linux·运维·服务器·c语言·开发语言·c++
人间打气筒(Ada)2 小时前
go实战案例:如何基于 Conul 给微服务添加服务注册与发现?
开发语言·微服务·zookeeper·golang·kubernetes·etcd·consul
2301_822782822 小时前
嵌入式C++调试技术
开发语言·c++·算法
2301_776508722 小时前
实时信号处理库
开发语言·c++·算法
hans汉斯2 小时前
基于污点分析的PHP应用威胁检测平台
开发语言·人工智能·算法·yolo·目标检测·php·无人机
m0_726965982 小时前
关于conda
开发语言·python·conda
xxjj998a2 小时前
Python 爬虫实战案例 - 获取社交平台事件热度并进行影响分析
开发语言·爬虫·python