我想提取 <
之间的所有字符和>
除了/
。那么如果是</root>
它应该提取 root
并忽略/
.
这是提取 <
之间的值的代码和>
:
/<(.*?)>/
如何修改它以忽略 /
但仍然得到其他角色?
最佳答案
你很接近。只需在左尖括号后添加一个可选的斜杠即可:
</?(.*)>
您可能也不应该只接受任何字符,而应该排除右尖括号:
</?([^>]*)>
[^...]
是一个否定组,表示“任何不在该组中的内容。 [
和 ]
标记该组,^
作为第一个字符否定。
也就是说,使用正则表达式解析 XML 是一个非常糟糕的主意。您或许应该研究一下 XML 解析器。
如果您不解析 XML 并且想要排除捕获文本中任意位置的斜杠(即,不仅仅是在 <
之后),您可以执行 Java 文本替换,例如 result.replace("/", "");
.
关于java - 如何匹配 `<` 和 `>` 之间除 `/` 之外的所有字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58020865/