我正在处理一个硬件问题,该问题涉及从html代码的文本中删除所有html标签“ <...>”,然后计算该文本中的所有标记。
我写了一个可行的解决方案,但是全部归结为我实际上并未编写的一行代码,我很想了解更多有关这种代码如何工作的信息。
public static int tagStrip(Scanner in) {
int count = 0;
while(in.hasNextLine()) {
String line = in.nextLine();
line = line.replaceAll("<[^>\r\n]*>", "");
Scanner scan = new Scanner(line);
while(scan.hasNext()) {
String word = scan.next();
count++;
}
}
return count;
}
第7行是我很好奇的。我了解replaceAll()方法的工作方式。我不确定字符串“ <[^> \ r \ n] *>”的工作方式。我读了一些有关模式的内容,并弄乱了一些。
我用“ <[^>] +>”替换了它,但它仍然完全一样。因此,我希望有人能够解释这些字符的工作原理,以及它们在做什么,尤其是在此类程序的构造中。
答案 0 :(得分:0)
如果您希望探索或修改表达式,可以在regex101.com中修改/更改表达式。
<[^>]+>
可能不起作用,因为它会通过您的新行,这似乎是不希望的。
您还可以在jex.im中可视化您的表达式: