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

javaobject oriented programmingprogramming

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

此包的 pattern 类是正则表达式的编译表示。要将正则表达式与字符串匹配,此类提供了两种方法,即 −

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

  • ma​​tcher() − 此方法接受字符串值并创建一个匹配器对象,该对象将给定的字符串与当前模式对象所表示的模式进行匹配。

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

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

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

因此,要从字符串 − 中查找 HTML 标记,请

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

  • 使用 Pattern 类的 matcher 方法 () 将其与所需的字符串匹配。

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

  • 如果匹配,则使用 Matcher 类的 group() 方法检索匹配的字符串。

示例

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

输出

Tutorialspoint

相关文章