如何在Java中使用正则表达式从字符串中提取HTML标记?

java的java.util.regex包提供了各种类来查找字符序列中的特定模式。

该程序包的模式类是正则表达式的编译表示。为了将正则表达式与String匹配,此类提供了两种方法,即-

  • compile() -此方法接受表示正则表达式的String并返回Pattern类的对象。

  • matcher() -此方法接受一个String值并创建一个matcher对象,该对象将给定的String与当前模式对象表示的模式匹配。

java.util.regex包的Matcher类是执行匹配操作的引擎。要找到匹配的值,您需要使用此类的两个方法,即-

  • find() -如果当前对象表示的匹配操作成功,则此方法返回true,否则返回false。

  • group() -此方法接受表示特定组的整数值,并返回在匹配操作中由指定组捕获的序列。

因此,要从字符串查找HTML标签-

  • 通过将表示所需HTML标记的正则表达式作为参数传递给compile()Pattern类的方法来创建Pattern对象。

  • 使用method()Pattern类的匹配器将其与所需的String匹配。

  • 使用find()Matcher类的方法验证是否发生了。

  • 如果匹配,请使用group()Matcher类的方法检索匹配的String 。

示例

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ExtractHtmlTag {
   public static void main(String[] args) {
      String str = "Welcome to <b>Nhooo<b>";
      //创建一个模式对象
      Pattern pattern = Pattern.compile("<b>(\\S+)</b>");
      //匹配字符串中的已编译模式
      Matcher matcher = pattern.matcher(str);
      if (matcher.find()) {
         String result = matcher.group(1);
         System.out.println(result);
      }
   }
}

输出结果

Nhooo
猜你喜欢