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

替换正则表达式匹配中的字符

堵泽宇
2023-03-14

我想匹配任何文本中的某些行,在匹配中,我想尽可能频繁地替换某个字符。示例文本:

任何文本和“更多”文本。不要在此处替换引号
CatchThis(此处没有引号,“任何更多文本”,“等等…”)。。。

现在,我想用哈希符号来替换圆括号中的每个引号。预期结果:

任何文本和“更多”文本。不要在此处替换引号
CatchThis(此处没有引号,#没有更多文本#,#等等…#)。。。

匹配线条很容易。这是我的模式:

(?i)Catch(?:This|That|Anything)[ \t]*\(.+\)

不幸的是,我不知道如何匹配和替换每一个报价...

共有2个答案

佴淮晨
2023-03-14

你真的需要在正则表达式中替换这个吗?如果您的正则表达式找到您想要的,您可以替换找到的字符串上的字符

戴浩初
2023-03-14

在 2 个不同的分隔符中匹配某个模式的所有匹配项的常见方法是使用基于 \G 锚点的正则表达式。

(?i)(?:\G(?!\A)|Catch(?:This|That|Anything)\s*\()[^()"]*\K"

查看正则表达式演示。

说明:

    < li> (?i) -不区分大小写的修饰符 < li> (?: -匹配2个备选项的非捕获组 < ul > < li> \G(?!\A) -字符串中上一次成功匹配之后的位置(因为< code>\G也匹配字符串的开头,所以< code > (?!\A)必须排除这种可能性) < li> | - or < li> Catch(?:This | That | any)-< code > Catch 后跟< code>This或< code>That或< code > any < li> \s* - 0个空格 < li> \( -文字< code>(符号
 类似资料:
  • 我有一根绳子。假设:< br> 我想将所有替换为单词和替换为。一般来说,我想替换单个字母或单个字母与空格或点之间的所有点。我认为匹配的正则表达式是: 我怎么能只替换那个点,而不是所有匹配的东西? 编辑: 预期产出: 编辑2: 基本任务是从缩写和首字母缩略词中删除点,这些缩略词可以用点或不用点编写。所以一个好的正则表达式也很有价值

  • 有没有人试图描述与正则表达式匹配的正则表达式? 由于重复的关键字,这个主题几乎不可能在网上找到。 它可能在实际应用程序中不可用,因为支持正则表达式的语言通常具有解析它们的方法,我们可以将其用于验证,以及一种在代码中分隔正则表达式的方法,可用于搜索目的。 但是我仍然想知道匹配所有正则表达式的正则表达式是什么样子的。应该可以写一个。

  • 我们得到了一些这样的内容:

  • 我试图用正则表达式匹配替换给定的字符。例如,给定以下字符串: 如果你看看你生活中拥有的,你总是会拥有更多。如果你看看你生活中没有的,你永远不会有足够的 我想用“!”替换所有的“t”,只有在字符“ok”和“fe”之间匹配的情况下。 我用这个正则表达式得到“ok”和“fe”之间的匹配: 并且我只能将一个字符与以下正则表达式匹配: 我试图用以下方式转换正则表达式,但它不起作用: 我怎样才能在ok和fe之

  • 主要内容:基本模式匹配,字符簇,确定重复出现基本模式匹配 一切从最基本的开始。模式,是正则表达式最基本的元素,它们是一组描述字符串特征的字符。模式可以很简单,由普通的字符串组成,也可以非常复杂,往往用特殊的字符表示一个范围内的字符、重复出现,或表示上下文。例如: 这个模式包含一个特殊的字符 ^,表示该模式只匹配那些以 once 开头的字符串。例如该模式与字符串 "once upon a time" 匹配,与 "There once was

  • 问题内容: 我在尝试将我的javascript regex经验转移到Python时遇到了麻烦。 我只是想让它工作: …但是它打印无。如果我做: 它匹配…默认情况下是否匹配字符串的开头?当匹配时,如何使用结果? 我如何进行第一场比赛?是否有比python网站提供的文档更好的文档? 问题答案: 隐式添加到您的正则表达式的开头。换句话说,它仅在字符串的开头匹配。 将在所有位置重试。 一般来说,建议您在需