正则表达式查找具有特定模式的字符串[关闭]

问题描述 投票:0回答:1

我想编写一个正则表达式来查找字符串末尾有 chr(10) 和 chr(13) 的所有字符串并将其删除。

这就是我想出来的

regexp_replace(description, '['||chr(10)||chr(13)||']*$')

但是一路上我发现了一些如下所示的记录,这些记录不会被上面的正则表达式捕获。

......chr(10) chr(13) chr(32)

所以我尝试了以下方法,但无法使其工作。

regexp_replace(description, '['||chr(10)||chr(13)||']'||'[^['||chr(32)||']]*$')

我发现以下内容不起作用,因为它捕获字符串末尾有 chr(32) 的所有记录。我的要求是删除 chr(10) 和 chr(13)。

regexp_replace(description, '['||chr(10)||chr(13)||chr(32)||']*$')

有人可以帮我找到正确的正则表达式吗?

举个例子

sometext... chr(10) chr(13) chr(32)

我想删除 chr(10) chr(13) 并保留 chr(32),但前提是这些特殊字符出现在字符串末尾。

作为一个实际场景,有些人从文档中复制地址并用特殊字符粘贴。

文字:

千禧研究所

预期输出:

千禧学院

regex oracle special-characters chr regex-replace
1个回答
-2
投票

但是一路上我发现了一些如下所示的记录,这些记录不会被上面的正则表达式捕获。

......chr(10) chr(13) chr(32)

您要更换:

  • 一个或多个 CF 或 LF 字符
    ['||chr(10)||chr(13)||']+
  • 后跟零个或多个空格字符
     *
    (或者,也许是更广泛的空白字符
    \s*
  • 并执行一次或多次
    (<previous regex>)+
  • 锚定在绳子的末端
    $

这给出了:

REGEXP_REPLACE(description, '(['||chr(10)||chr(13)||']+\s*)+$')
© www.soinside.com 2019 - 2024. All rights reserved.