当前位置: 首页 > 知识库问答 >
问题:

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

朱兴安
2023-03-14

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

    < li >测试1/测试2/测试3/测试4/测试5/ < li >测试1/测试2/测试3/测试4// < li >测试1/测试2/测试3/// < li >测试1/测试2//// < li>test1/////

我的预期结果是

> < li >测试1/测试2/测试3/测试4/测试5 < li>

测试1/测试2/测试3/测试4

测试1/测试2/测试3

目前,我正在使用regexp_replace(col,“/ /”,“/”),它正在工作,但在最后留下了额外的/。

共有2个答案

贺浩漫
2023-03-14

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

/\/+$/gm

并替换为空字符串(< code >“”)。

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

郭恩
2023-03-14

你可以用

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

参见正则表达式演示。

详细资料

  • /$-1或更多/位于字符串末尾
  • |-或
  • (/){2,}-两个或多个斜杠,最后一个斜杠将保存在捕获组1中,您可以使用占位符从替换模式中引用
 类似资料:
  • 问题内容: 我有这个字符串: 现在,我想在每个数字之前添加String num:。 因此结果必须是: 这也必须工作: 用于搜索数字的正则表达式是:[0-9]+ 但是我想用num:+ [匹配的子字符串]替换匹配的子字符串。 我现在写了一个带有数字的示例,但另一个示例可以是:在每个电子邮件地址之前添加 ·Email found·: 问题答案: 利用分组。您可以使用括号(并)定义组,并通过组索引$n在哪

  • 问题内容: 我将如何使用Java中的regex在一行中找到多个匹配项? 我的代码(包括正则表达式): 我在其中使用的部分字符串: 这适用于第一次出现(实际上是整个字符串),但是由于认为整个字符串是第一次出现,因此不再赘述。 希望您理解我要说的内容,但我不知道该如何解释得更清楚。 --EDIT我也尝试过用以下命令替换正则表达式: 我认为这样做只会将一个行字符串的一部分视为一个出现,从而解决了我的问题

  • 问题内容: 我正在寻找一种方法来替换(删除/替换为“)Oracle SQL数据库的列中以逗号分隔的值列表中的字符串。例如,假设我有以下数据: 我希望将所有出现的子字符串’SL’严格地(即不包括’OSL’)替换为空字符串。 理想的结果如下所示 : 我试图使用该函数,但它仅消除了其他所有情况,即 我已经在其他具有词边界构造的正则表达式实现中成功实现了我的目标,但是还没有找到针对Oracle正则表达式的

  • 下面就来详细介绍Notepad++中关于正则表达式的部分,主要是查找和替换。 对于替换功能,一般的文本编辑器,都具有此功能,但是对于高级的正则表达式替换,则很多都不支持。而此处Notepad++支持此功能。 正则表达式的替换,在很长一段时间内,我都没有用到过。而后来有此需求的时候,由于不熟悉,导致也没去折腾具体如何使用的。 后来有空去弄了下,终于搞懂了。对此类功能不了解的人,会没啥感觉,但是看了下

  • 在这个问题的背景下,我想做以下修改: 查找: funcA(参数0,参数1,参数2,参数3); 替换: funcA可以有除param0之外的任意数量的参数。怎么做呢?为简单起见,忽略基本情况,即当传递给funcA的参数仅为param0时。 funcA是: 职能是: 编辑: 参数(param1,param2..)只是包含字母的字符串。

  • 问题内容: 我需要替换字符串的一部分。我浏览了Python文档并发现了re.sub。 我期望这能打印,而不是“酒吧”。 谁能告诉我我做错了什么? 问题答案: 除了捕获要 替换 的零件外,您还可以捕获要 保留 的零件,然后使用引用对其进行引用以将它们包括在替换字符串中。 尝试以下方法: 另外,假设这是HTML,则应考虑使用HTML解析器来执行此任务,例如Beautiful Soup 。