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

正则表达式提取HTML标记之间的文本

隆安然
2023-03-14

我正在寻找一个正则表达式,它必须在不同类型的HTML标记之间提取文本。

对于前任:

<代码>

<代码>

<代码>

我找到了这个特殊的片段


共有3个答案

夹谷和韵
2023-03-14
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");
}
卫鸿朗
2023-03-14

这应该符合您的需求:

<([a-zA-Z]+).*?>(.*?)</\\1>

第一组包含标记名称,第二组包含介于两者之间的值。

弘涛
2023-03-14
匿名用户

您的注释表明您忽略了对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

  • 考虑到这一点: 如何使用正则表达式模式提取: 这很好,但我不想硬编码标签,它们可以更改:

  • 我有一根绳子,看起来像这样: