需求: 把如下通过"/"连接起来的三个字符串分别解析出来。

传统的做法见下图第98行的function module SKWF_UTIL_IO_FIND_BY_KEY:

这个function module的作用就是解析用两个/分隔开的document type: L, document class: CRM_L_ORD和document guid。

这个function module采用传统的做法,把三个key拆分并存储到一个内标里,然后READ TABLE INDEX 1,2,3的方式分别取出每个key。用了42行代码。

如果用正则表达式,只需1行代码:

而且后者比前者快3~6倍:因为FIND REGEX是在ABAP Kernel用C++实现的,比在ABAP端做要高效。参考如下的性能测试比较结果(单位:微秒)。

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

ABAP正则表达式 vs SPLIT INTO的更多相关文章

  1. 解析json串,利用正则表达式,split

    public class SplitJson { public static void main(String[] args) {        // TODO Auto-generated meth ...

  2. 使用ABAP正则表达式解析HTML标签

    需求就是我用ABAP的某个函数从数据库读取一个字符串出来,该字符串的内容是一个网页. 网页的form里包含了很多隐藏的input field.我的任务是解析出name为svyValueGuid的inp ...

  3. python正则表达式(6)--split、sub、escape方法

    1.re.split 语法: re.split(pattern, string[, maxsplit=0, flags=0]) 参数: pattern    匹配的正则表达式 string      ...

  4. python 正则表达式 re.split

    内置函数split与re库中的split,有很多相似处 #!use/bin/python #coding:utf-8 import re str= "https://i.cnb1logs.c ...

  5. C#和Javascript中 正则表达式使用的总结

    说明:本文并非原创,而是从网站上搜集了一些资料整理的!如有雷同,纯属巧合 1.js中正则表达式的使用 在js中定义正则表达式很简单,有两种方式,一种是通过构造函数,一种是通过//,也就是两个斜杠.例如 ...

  6. Java与正则表达式

    Java与正则表达式 标签: Java基础 正则 正如正则的名字所显示的是描述了一个规则, 通过这个规则去匹配字符串. 学习正则就是学习正则表达式的语法规则 正则语法 普通字符 字母, 数字, 汉字, ...

  7. [置顶] js正则表达式的使用

    js中的正则表达式比起C#中的正则表达式要弱很多,但基本够用了 1定义正则表达式 2关于验证的三个这则表达式方法 3正则表达式式的转义字符 1定义正则表达式 在js中定义正则表达式很简单,有两种方式, ...

  8. Python3 如何优雅地使用正则表达式(详解六)

    修改字符串 我们已经介绍完如何对字符进行搜索,接下来我们讲讲正则表达式如何修改字符串. 正则表达式使用以下方法修改字符串: 方法 用途 split() 在正则表达式匹配的地方进行分割,并返回一个列表 ...

  9. PHP 18:data_valid_fns.php 看正则表达式

    原文:PHP 18:data_valid_fns.php 看正则表达式 本章介绍正则表达式.先看看data_valid_fns.php的代码吧.                 简要介绍一下.fill ...

随机推荐

  1. ubuntu root用图形界面登录

    http://blog.csdn.net/weimine/article/details/69055536 http://blog.csdn.net/gongxifacai_believe/artic ...

  2. 二维vector容器读取txt坐标

    template <class vector> struct HeadLocation{ vector x; vector y; }; vector<HeadLocation< ...

  3. cmake指令详解

    所需文件名:CmakeLists.txt,在需要操作的每个目录下都需要 PROJECT(工程名字)     这条指令会自动创建两个变量: <projectname>_BINARY_DIR( ...

  4. c语言实现栈的增删查减

    #include"stdio.h"#include"stdlib.h"#define STACK_SIZE 100#define STACKINCREMENT ...

  5. AppInventor2笔记

    将视觉化的 块语言 翻译为 Android上的实现 的编译器使用了Kawa语言框架,而Kawa是Scheme编程语言的方言,由Per Bothner开发,并由自由软件基金会发布,它是GNU操作系统的一 ...

  6. do while循环

    do while循环: 语法格式: do{ 循环体 }while(循环条件); 执行流程: 先执行循环体,然后判断条件,当条件为true时,则继续执行循环体,然后再判断条件... 一直到循环条件为fa ...

  7. lnmp 优化

    一,版本信息优化 重启 直接更改版本号: 在源码包里改 第二个要改的地方 第三个需要更改的 改完后编译安装,下次我直接写进编译脚本上

  8. SQLAlchemy安装和使用

    1.SQLAlchemy安装 SQLAlchemy依赖mysql-python驱动,mysql-python目前只有支持py2的版本和mysql5.5的版本 点我:mysql-python链接 版本: ...

  9. 参考美团、饿了么 && localStorage

    localStorage使用.        为什么要使用 localStorage?       因为在之前的讨论过程中,问题:每次添加一件商品和去掉一个商品都需要发送一个http请求来更新购物车, ...

  10. NSTimer循环引用的问题

    前言: 记得之前看过一个面试题问:ARC环境下的dealloc方法有什么用?问题解答是:代理指针置空,停止定时器timer,注销通知,释放掉实例变量.看着没什么问题,而且网上一收也是大概这样的答案.今 ...