1. 正则表达式测试程序
- DEMO_REGEX
- DEMO_REGEX_TOY
2. ABAP SQL & CDSView Entity支持正则语法的场景
SQL函数 | 语法 | 作用 | 执行逻辑 | 返回类型 | CDS View Entities | ABAP SQL |
---|---|---|---|---|---|---|
LIKE_REGEXPR | LIKE_REGEXPR( PCRE = pcre, VALUE = sql_exp1[, CASE_SENSITIVE = case]) |
检查字符串是否包含任何 PCRE命中 | 检查sql_exp是否包含任何 PCRE命中,是则返回1,否则返回0。默认情况下,搜索是区分大小写的,但可以使用参数case-sensitive 覆盖这一点。 | INT4 | 支持 | |
OCCURRENCES_REGEXPR | OCCURRENCES _REGEXPR( PCRE = pcre, VALUE = sql_exp1[, CASE_SENSITIVE = case]) |
计数并返回所有出现的 PCRE命中 | 对sql_exp中 PCRE命中 的所有出现次数进行计数,并返回出现次数。默认情况下,搜索是区分大小写的,但可以使用参数case-sensitive 覆盖这一点。 | INT4 | 支持 | |
REPLACE_REGEXPR | REPLACE_REGEXPR( PCRE = pcre, VALUE = sql_exp1, WITH = sql_exp2, OCCURRENCE => occ][, CASE_SENSITIVE => case]) |
将字符串中的 PCRE命中 替换为另一个指定的字符串 | 将sql_exp1中的 PCRE命中 替换为sql_exp2中指定的字符串。OCCURRENCE是可选的,它决定了要替换的pcre的出现次数。默认情况下,搜索是区分大小写的,但可以使用参数case-sensitive 覆盖这一点。 | SSTRING | 支持 | 支持 |
- LIKE_REGEXPR 取工厂为纯数字的数据(ABAP SQL)
SELECT *
FROM marc
WHERE LIKE_REGEXPR( PCRE = '[0-9]{4}',VALUE = werks,CASE_SENSITIVE = ' ' ) = 1
into TABLE @DATA(lt_marc).
- OCCURRENCES _REGEXPR取"0"出现了3次的工厂(ABAP SQL)
SELECT *
FROM t001w
WHERE occurrences_regexpr( pcre = '[0]{1}',value = werks,case_sensitive = ' ' ) = 3
INTO TABLE @DATA(lt_marc).
文章来源:https://www.toymoban.com/news/detail-821165.html
- REPLACE_REGEXPR 取Z004下工厂纯数字或者V00开头&Z005 Z006下工厂非纯数字的数据 (CDS View Entity)
define view entity ZI_MAINTAINEDPLANTVIEW_VH
as select from ZI_MAINTAINEDPLANTVIEW as t1
cross join ZI_MD_SUBTYPE_VH as t2
{
@Consumption.filter.hidden:true
key t1.Matnr,
@ObjectModel.text.element: [ 'name1' ]
key t1.Werks,
t1.Extended,
@Semantics.text: true
t1.Name1,
t2.SubType
}
where
t1.Matnr <> ''
and(
t2.SubType = 'Z001_003'
or t2.SubType = 'Z002_003'
or t2.SubType = 'Z002_003'
or(
t2.SubType = 'Z004_003'
and(
'####' = replace_regexpr(pcre => '[0-9]{1}', value => t1.Werks, with => '#', result_length => 4)
or(
left(t1.Werks,3) = 'V00'
)
)
)
or(
(
t2.SubType = 'Z005_003'
or t2.SubType = 'Z006_003'
)
and(
'####' <> replace_regexpr(pcre => '[0-9]{1}', value => t1.Werks, with => '#', result_length => 4)
)
)
)
文章来源地址https://www.toymoban.com/news/detail-821165.html
到了这里,关于ABAP SQL & CDSView Entity中使用正则RegEx表达式(Regular Expressions)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!