正则表达式 - 替换多次出现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式 - 替换多次出现相关的知识,希望对你有一定的参考价值。

我有一个字符串,可以是以下任何一种情况:

  1. 测试1 / TEST2 / TEST3 / TEST4 / TEST5 /
  2. TEST1 / TEST2 / TEST3 / TEST4 //
  3. TEST1 / TEST2 / TEST3 ///
  4. 测试1 / TEST2 ////
  5. test1的/////

我的预期结果是

  1. 测试1 / TEST2 / TEST3 / TEST4 / TEST5
  2. TEST1 / TEST2 / TEST3 / TEST4
  3. TEST1 / TEST2 / TEST3
  4. TEST1 / TEST2
  5. test1如何使用正则表达式实现?

目前,我正在使用regexp_replace(col,“/ + /”,“/”)它正在工作但最后留下一个/。

答案

您可以使用以下正则表达式:

//+$/gm

并用空字符串替换('')。

正则表达式将匹配字符串末尾的一个或多个斜杠,然后将替换那些带有空字符串的斜杠,这意味着路径将不再以斜杠结尾。

另一答案

你可以用

regexp_replace(col, "/+$|(/){2,}", "\1")

regex demo

细节

  • /+$ - 字符串末尾有一个或多个/
  • | - 或
  • (/){2,} - 两个或多个斜杠,最后一个将保存在捕获组1中,您可以使用1占位符从替换模式中引用。

以上是关于正则表达式 - 替换多次出现的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 正则表达式替换用逗号包围的字符串的多次出现

正则表达式 - 替换多次出现

如何使用正则表达式进行多次替换?

仅替换文件中多次出现的匹配组

一个可以使用多个正则表达式进行多次尝试匹配,并进行替换的Excel VBA自定义函数(UFD)

2021-05-08