使用OPEN SQL的函数: replace_regexpr
|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| REPLACE_REGEXPR( pcre = pcre, value = sql_exp1, with = sql_exp2*[* , occurrence = occ*]* [ , case_sensitive = case*]* [ , start = start*]* ) |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| A Perl Compatible Regular Expression (PCRE) pcre is replaced in sql_exp1 with the character string specified in sql_exp2. occ is optional and determines the number of occurrences of pcre to be replaced. By default, all occurrences are replaced. The search is case-sensitive by default, but this can be overridden using the parameter case. The parameter start specifies the offset from which to start the search. 在 sql_exp1 中搜索符合 PCRE 正则表达式 的内容,并将其替换为 sql_exp2 指定的字符串。 * occ (occurrence):可选参数。指定替换第几次出现的匹配项。默认替换全部。 * case (case_sensitive):默认区分大小写,可通过此参数修改。 * start:指定从哪个字符位置(偏移量)开始搜索。 |
DATA lv_empty TYPE char1.
SELECT matnr,maktx,
replace_regexpr( pcre = '\s+',value = maktx, with = @lv_empty ) AS nospace_maktx
FROM makt
WHERE matnr = 'RB0009000046'
AND spras = @sy-langu
INTO TABLE @DATA(lt_out).
| 正则表达式 | 含义 | 处理方式 |
|---|---|---|
\s |
匹配单个空白字符 | 发现 1 个空格,执行 1 次替换。 |
\s+ |
匹配一个或多个连续的空白字符 | 发现连续的 N 个空格,把它们看作一个整体,只执行 1 次替换。 |
效果
