如何匹配`<`和`>`之间的所有字符,除了`/`?

时间:2019-09-20 02:04:59

标签: java regex

我想提取<>之间的所有字符。因此,如果它是/,则应提取</root>并忽略root

这是用于提取/<之间的值的代码:

>

如何修改它以忽略/<(.*?)>/ ,但仍然得到其他字符?

1 个答案:

答案 0 :(得分:1)

您很近。只需在尖尖括号后添加可选的斜杠即可:

</?(.*)>

您还可能不仅应该接受任何字符,而且还应排除尖括号:

</?([^>]*)>

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

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

如果您不解析XML并想在捕获的文本中的任何地方排除斜杠(即,不仅在<之后),您可以进行Java文本替换,例如result.replace("/", "");。 / p>