div class="qml-stem"><p style=""><span style="font-family: 宋体;">读一读,猜一猜。</span></p><p style=""><span style="font-family: 宋体;">什么鸟跑得快,不爱树林爱沙漠?(<span style="font-family: 'Times New Roman'" qml-space-size="2"> </span>)</span></p><div class=" qml-og"><table class="qml-og" style="width:100%"><tr><td>A. <span class="qml-op"><span style="font-family: 宋体;">山椒鸟</span></span></td><td>B. <span class="qml-op"><span style="font-family: 宋体;">鸵鸟</span></span></td><td colspan="1">C. <span class="qml-op"><span style="font-family: 宋体;">犀鸟</span></span></td></tr></table></div></div> 这段html中使用java 正则判断是否有选项A
时间: 2023-07-19 14:27:12 浏览: 147
可以使用以下 Java 正则表达式进行匹配:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
String html = "<div class=\"qml-stem\"><p style=\"\"><span style=\"font-family: 宋体;\">读一读,猜一猜。</span></p><p style=\"\"><span style=\"font-family: 宋体;\">什么鸟跑得快,不爱树林爱沙漠?(<span style=\"font-family: 'Times New Roman'\" qml-space-size=\"2\"> </span>)</span></p><div class=\" qml-og\"><table class=\"qml-og\" style=\"width:100%\"><tr><td>A. <span class=\"qml-op\"><span style=\"font-family: 宋体;\">山椒鸟</span></span></td><td>B. <span class=\"qml-op\"><span style=\"font-family: 宋体;\">鸵鸟</span></span></td><td colspan=\"1\">C. <span class=\"qml-op\"><span style=\"font-family: 宋体;\">犀鸟</span></span></td></tr></table></div></div>";
Pattern pattern = Pattern.compile("<td>A\\.\\s*<span.*?>(.*?)</span></td>");
Matcher matcher = pattern.matcher(html);
if (matcher.find()) {
String optionA = matcher.group(1);
System.out.println(optionA); // 输出:山椒鸟
} else {
System.out.println("没有选项A");
}
```
该正则表达式的含义是匹配 `<td>` 标签中以大写字母 A 开头,以 `</td>` 结尾的内容(即选项 A)。使用 `\\s*` 匹配零个或多个空格。使用 `.*?` 匹配任意字符(包括换行符),直到后面的 `</span>` 结束标签。使用 `()` 捕获选项 A 的内容。使用 `Matcher.find()` 函数可以在字符串中搜索第一个匹配项。如果找到了匹配项,则使用 `matcher.group(1)` 获取第一个匹配的子串,即选项 A 的内容。如果没有找到匹配项,则说明没有选项 A。
阅读全文