java - 如何匹配 `<` 和 `>` 之间除 `/` 之外的所有字符?

标签 java regex

我想提取 < 之间的所有字符和>除了/ 。那么如果是</root>它应该提取 root并忽略/ .

这是提取 < 之间的值的代码和> :

/<(.*?)>/

如何修改它以忽略 /但仍然得到其他角色?

最佳答案

你很接近。只需在左尖括号后添加一个可选的斜杠即可:

</?(.*)>

您可能也不应该只接受任何字符,而应该排除右尖括号:

</?([^>]*)>

[^...]是一个否定组,表示“任何不在该组中的内容。 [] 标记该组,^ 作为第一个字符否定。

也就是说,使用正则表达式解析 XML 是一个非常糟糕的主意。您或许应该研究一下 XML 解析器。

如果您不解析 XML 并且想要排除捕获文本中任意位置的斜杠(即,不仅仅是在 < 之后),您可以执行 Java 文本替换,例如 result.replace("/", ""); .

关于java - 如何匹配 `<` 和 `>` 之间除 `/` 之外的所有字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58020865/

相关文章:

java - 未能传递结果信息

java - 如何在程序中保存图像?

javascript - 使用 javascript onkeydown 处理键

java - 结合字母顺序和自然顺序(又名。用户理智排序)

java - 替换密码字段中的点字符,Jframe,Java

java - 如何在 Java 中显示部分 HTML 文档

python - 如何使用正则表达式在 python 字符串中找到 str.format 的所有占位符?

regex - 在 .htaccess 中仅从一个特定文件中删除 .php 扩展名

javascript - 正则表达式通过javascript从字符串中删除重复的字符

基于 C# 正则表达式的日期解析和提取