用于匹配除新行和特殊字符之外的所有内容的正则表达式

RegEx for matching everything except new lines and a special char

我正在处理一个硬件问题,该问题涉及从 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]*>”是如何工作的。我阅读了一些关于模式的内容,并稍微弄乱了它。
我用“<[^>]+>”替换了它,它仍然完全一样。所以我希望有人能解释这些角色是如何工作的,以及他们做了什么,尤其是在这类程序的结构中。

正则表达式

如果您想探索或修改您的表达方式,您可以 modify/change 您在 regex101.com 中的表达方式。

<[^>]+> 可能无法工作,因为它会通过你的新行,这似乎是不受欢迎的。

正则表达式电路

您还可以在 jex.im:

中可视化您的表情