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

使用正则表达式替换包含单词的模式

华聪
2023-03-14

假设我有以下字符串

String s = "enclosing[this]normally"; 
String t = "enclosing[that]normally"; 
String u = "still on[it]still"; 

在所有应用程序上使用regex,是否有可能

String s = "enclosed(this)finally"; 
String t = "enclosed(that)finally"; 
String u = "still on[it]still"; 

i、 e.替换包含单词的模式的正则表达式,例如,从上面的“enclosing[“”]通常情况下”“included”(“”)替换为“included”(“”)finally“


共有1个答案

范修伟
2023-03-14

Youn可以使用这样的正则表达式-封闭\\[(.?)]通常。它将匹配封闭[文学,然后是任何东西,然后]正常情况下再次文学。第二部分(任何内容)被捕获为第1组。

然后你可以这样做:

public class ReplaceEnclosing {

    public static String replace(String input) {
        return input.replaceAll("enclosing\\[(.+?)]normally", "enclosed($1)finally");
    }
}

第一个参数是正则表达式,第二个是替换字符串。注意:替换字符串中的$1指的是捕获组1的结果。

 类似资料:
  • 我正在使用以替换子字符串 我现在面临的问题是,只有在字符串替换不支持的情况下,我才想要替换整个单词。< br >因为我必须替换非常非常大的字符串,可能以GB为单位。与字符串替换相比,正则表达式非常慢。< br >例如:text: - 正则表达式将时间缩短了近 100 倍(https://medium.com/codezillas/golang-replace-vs-regexp-de4e48482

  • Change is inevitable, except from vending machines. — Robert C. Gallagher Puppet 的 regsubst 函数提供了一种处理文本的简单方法, 用于在字符串中查找和替换,或者从字符串提取匹配的模式。 例如,我们通常需要对从 facter 或者从外部程序获得的数据做这样的处理。 在本例中将会看到如何使用 regsubst 提

  • 问题内容: 我知道可以匹配一个单词,然后使用其他工具(例如grep -v)将匹配项反转。但是,是否可以hede使用正则表达式来匹配不包含特定单词的行? 输入: 码: 所需的输出: 问题答案: 正则表达式不支持逆匹配的说法并不完全正确。您可以使用否定环顾模仿此行为: 上面的正则表达式将匹配任何不包含(sub)字符串’hede’的字符串或没有换行符的行。如前所述,这是不是正则表达式是“好”的(或应该做

  • 问题内容: 我们知道会匹配单词“ a ”或“ the ”, 我想构建一个正则表达式来匹配像这样的模式 的/一个/一个原因/原因 这意味着我要匹配包含3个单词的字符串: 的第一个单词应为“ a ”,“ the ”或“ one ” 第二个单词应该是“ 原因 ”或“ 原因 ” 的第三个字应为“ 的 ”或“ 的 ” 正则表达式无济于事。 我怎样才能做到这一点?顺便说一句,我使用python。谢谢。 问题答

  • 我正在尝试抓取模式中第一个连字符之后的文本 但在此模式中: 我希望它跳过‘不想要的’文本,并匹配的文本后面的下一个连字符(DesiredText)。我创建了一个具有两种模式regex101,并需要修改我的基本regex,以便如果中存在一个或多个我不想匹配的单词,那么它将匹配第二个连字符文本: https://regex101.com/r/vesqh3/1

  • 我在PowerGrep中使用这个正则表达式,(这个正则表达式搜索字符串实验室拉德TRAN) 搜索和删除包含字符串或部分字符串的纯文本行,效果很好。 现在我需要更多的东西。我想保留单词LABER,但删除所有其他包含LAB的字符串,例如LABOR、LAB1、ALAB、ALABA等。有没有办法“保护”字符串LABER并删除所有其他包含LAB的字符串?试图使用更改上述正则表达式,但它始终包含我需要保留的单