Как сопоставить все символы между `<` и `>` кроме `/`? - PullRequest
0 голосов
/ 20 сентября 2019

Я хочу извлечь все символы от < до >, кроме /.Таким образом, если это </root>, он должен извлечь root и игнорировать /.

Это код для извлечения значений между < и >:

/<(.*?)>/

Как мне изменить его так, чтобы он игнорировал /, но все равно получал другие символы?

1 Ответ

1 голос
/ 20 сентября 2019

Вы рядом.Просто добавьте дополнительную косую черту после открывающей фигурной скобки:

</?(.*)>

Вы, вероятно, также должны не просто принимать какие-либо символы, но исключать закрывающую фигурную скобку:

</?([^>]*)>

[^...]является отрицательной группой, которая говорит «все, чего нет в группе. [ и ] помечают группу, а ^ в качестве первого символа отрицания.

Тем не менее, это действительно плохоИдея синтаксического анализа XML с помощью регулярных выражений. Вероятно, вам следует изучить синтаксический анализатор XML.

Если вы не анализируете XML и хотите исключить косые черты в любом месте захваченного текста (т. е. не сразу после <), вы можете сделать замену текста Java, например result.replace("/", "");.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...