作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个正则表达式模式,该模式可以过滤 HTML 标签并仅打印有效标签的内容以供练习。虽然图案本身似乎与标签正确匹配,但我在打印它们时遇到了问题。
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class HTMLPattern{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int testCases = Integer.parseInt(in.nextLine());
while(testCases>0){
String line = in.nextLine();
String tagPattern = "<([^>]+)>([^<]*?)</\\1>";
Pattern p = Pattern.compile(tagPattern, Pattern.MULTILINE);
Matcher m = p.matcher(line);
if(m.find()){
//checks if the output equals a newline
if(m.group(2).matches("[\\n\\r]+")){
System.out.println("None");
}else{
System.out.println(m.group(2));
}
}else{
System.out.println("None");
}
testCases--;
}
}
}
输入时:
3
<a>test</a>
<b></b>
<c>test</c>
我的输出应该是:
test
None
test
但是相反它是:
test
test
我的问题是:为什么我的 if 语句没有捕获换行符并打印“None”?
最佳答案
没有新行,只有空字符串,尝试像这样匹配空字符串:
if (m.group(2).matches("^$")) {
或者检查字符串的长度
:
if (m.group(2).length() == 0) {
关于java - 应该过滤掉换行符的 if 语句不过滤换行符。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40749353/
我正在编写一个快速的 preg_replace 来从 CSS 中删除注释。 CSS 注释通常有这样的语法: /* Development Classes*/ /* Un-comment me for
使用 MySQL,我有三个表: 项目: ID name 1 "birthday party" 2 "soccer match" 3 "wine tasting evening" 4
我是一名优秀的程序员,十分优秀!