替换所有比赛的组

时间:2016-03-03 20:09:59

标签: java regex

如果在字词之前或之后没有字符cmd.Parameters.AddWithValue("@category_id", p);或连字符,我只想替换字符串中的字词。

文本:

(\w)

更换后的已删除结果:

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

正则表达式:

#text .text large-button tinybutton size9button #9button button-large buttontiny
  1. 正则表达式当前仅匹配第一次出现((?<![\w-])(button)(?![\w-]) 之后的按钮)。我需要做些什么来匹配所有事件?
  2. 如何用#或Java中的任何其他单词替换button
  3. 我已经阅读了主题Can I replace groups in Java regex?,但我真的不明白如何在我的特例中使用示例代码。不幸的是我没有任何代码可以显示。 :/

1 个答案:

答案 0 :(得分:0)

您可以在replaceAll方法中使用负向lookbehind和负向前瞻:

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

或者你可以使用lookarounds和word-boundary:

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

RegEx Demo