Matcher matcher = Pattern.compile("<([a-zA-Z]+).*>(.+)</\\1+>")
.matcher("<a href=\"#\">HyperText</a>");
while (matcher.find())
{
String matched = matcher.group(2);
System.out.println(matched + " found at "
+ "\n"
+ "start at :- " + matcher.start()
+ "\n"
+ "end at :- " + matcher.end()
+ "\n");
}
这应该符合您的需求:
<([a-zA-Z]+).*?>(.*?)</\\1>
第一组包含标记名称,第二组包含介于两者之间的值。
您的注释表明您忽略了对regex字符串中的反斜线进行转义。
如果您想匹配小写字母,请将a-z
添加到字符类或使用Pattern.CASE_INSENSITIVE
(或将(? i)
添加到正则表达式的开头)
"<([A-Za-z][A-Za-z0-9]*)\\b[^>]*>(.*?)</\\1>"
如果标记内容可能包含换行符,那么使用< code >模式。DOTALL或add (?s)
移动到正则表达式的开头,以打开dotall/singleline模式。
问题内容: 我想从一般的HTML页面中提取所有文本(是否显示)。 我想 删除 任何HTML标记 任何JavaScript 任何CSS样式 是否有一个正则表达式(一个或多个)可以实现? 问题答案: 您不能真正用正则表达式解析HTML。太复杂了。RE根本无法正确处理部分。此外,某些常见的HTML之类的东西将在浏览器中作为适当的文本工作,但可能会使天真的RE感到困惑。 有了合适的HTML解析器,您会更快
我想验证输入的代码是否是HTML代码(必须以<代码> 我试着这么做 但是我有一个问题需要在代码中做一个\n,我需要验证第一个和结束标签(=
问题内容: 我正在寻找一个正则表达式,可以从Java中的HTML片段中获取src(不区分大小写)标签。 问题答案: 一种可能性: 是可能的(如果不区分大小写地匹配)。这有点混乱,故意忽略了不使用引号的情况。要表示它而不必担心字符串转义: 这符合: 一个或多个不是的字符(即可能的其他属性) 可选空格 可选空格 或的起始定界符 图片来源 (可能不包含单引号或双引号) 结束定界符 尽管表达式可以在此处停
问题内容: 我有这个HTML: 我只需要匹配任何HTML标记之外的单词。我的意思是,如果我想匹配“简单”和“文本”,则只能从“这是简单的html文本”和最后一部分“文本”中获得结果- 结果将是“简单” 1匹配,“文本” 2火柴。有人可以帮我吗?我正在使用jQuery。 是我要匹配的单词(在这种情况下为“简单”) 是 我需要用来包装所有选定的单词(在此示例中为“简单”)。但是我只想包装 任何 HTM
考虑到这一点: 如何使用正则表达式模式提取: 这很好,但我不想硬编码标签,它们可以更改:
我有一根绳子,看起来像这样: