java正则表达式帮助

标签 java regex

我正在尝试用表达式替换 html 字体标签之间的所有字符。我写了一个小测试程序,但它不能正常工作。这是我的正则表达式:

test.replaceAll("<font\b(.*)>", "Something");

这行不通。

为什么?

最佳答案

请注意,* 运算符是 greedy ,即,

String test = "<font size=\"10\"><b>hello</b></font>";
System.out.println(test.replaceAll("<font\\b(.*)>", "Something"));

打印

Something

你可能想使用[^>]*

test.replaceAll("<font\\b([^>]*)>", "Something")

不情愿的量词*?:

test.replaceAll("<font\\b(.*?)>", "Something")

两者都会导致

Something<b>hello</b></font>

关于java正则表达式帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5669710/

相关文章:

java - KeyListener问题

java - 2 个巨大文件之间的最长公共(public)子字符串 - 内存不足 : java heap space

python - 我的常规句子有什么问题?

ios - 快速从字符串中提取值

javascript - Node.js semver 中的正则表达式非捕获组

java - Android 运行时崩溃

java - Groovy/Java 正则表达式循环匹配模式

java - 如何在 Selenium webdriver 中选择 "Span Type dropdown"中的值

regex - 正则表达式惰性修饰符匹配太多

javascript - 如何使用正则表达式用 Javascript 替换字符串中特定单词以外的所有内容