用于匹配除新行和特殊字符之外的所有内容的正则表达式
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:
中可视化您的表情
我正在处理一个硬件问题,该问题涉及从 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:
中可视化您的表情