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

替换所有匹配的组

拓拔富
2023-03-14

我只想替换字符串中的单词,如果单词字符(\w)或单词前后没有连字符。

文本:

#button .button large-button tinybutton size9button #9button button-large buttontiny

替换后的预期结果:

#text .text large-button tinybutton size9button #9button button-large buttontiny

正则表达式:

(?<![\w-])(button)(?![\w-])
    < li >正则表达式当前仅匹配第一个匹配项(< code>#后的按钮)。我需要做什么来匹配所有事件? < li >如何在Java中将< code>button替换为< code>text或任何其他单词?

我读过主题我能在Java regex中替换组吗?,但是我真的不明白如何为我的特殊情况使用示例代码。不幸的是,我没有任何代码显示。:/

共有1个答案

顾宸
2023-03-14

您可以在replace eAll方法中使用负后视和负前视:

str = str.replaceAll("(?<![\\w-])button(?![\\w-])", "text");

或者,您可以使用环顾四周和字边界:

str = str.replaceAll("(?<!-)\\bbutton\\b(?!-)", "text");

正则表达式演示

 类似资料:
  • 我正在尝试使用JOLT转换https://jolt-demo.appspot.com/. 我想将所有“大师”值替换为“7.11”。 输入: 期望输出: 我似乎无法在不更改/更改数据结构的情况下进行转换或转换。当前方法: 电流输出:

  • 问题内容: 如何替换字符串中所有出现的内容? 如果要替换字符串中的所有换行符(\ n)。 这只会替换第一次出现的换行符 我不知道该怎么做? 问题答案: 使用全局标志。

  • 我使用regex将其他regexs(或regexs?)中的)替换为)(?:)以将它们转换为不匹配的组。我的表达式假定没有使用结构,如下所示: 不幸的是,如果有两个匹配项紧挨着,这就不起作用了,就像下面这样: 有了lookbehinds,解决方案很简单:

  • 问题内容: 我有一个字符串,例如。我想分别使用 JavaScript*和分别替换两个下划线。(因此)输出看起来像。该字符串可能包含多对下划线。 * 我所寻找的是一个方法来 无论是 运行在每场比赛,红宝石做它的方式的函数: 或 能够再次引用匹配的组,就像在ruby中一样: 有什么想法或建议吗? 问题答案: 哦,或者您也可以:

  • 匹配器中的函数忽略了带有双反斜杠的转义字符。我想把两行替换成一行\n按原样分开。这是我的代码: 输出: Lorem ipsum dolor sit amet,\nConsectetur adipiscing elit sed do eusmod tempor incidunt ut\nlabore et dolore magna aliqua Lorem ipsum dolor sit amet,

  • 我不知道如何使用Visual Studio代码1.0在不同文件中查找和替换一个单词的所有出现位置。 我得到的印象是这应该是可能的,因为做Ctrl+Shift+F允许我简单地搜索一个文件夹,但我不知道如何继续从这里。 但我只找到了如何替换打开文件(Ctrl+h)中出现的所有内容 感谢所有的帮助,这快把我逼疯了。