Программа, которую я пишу (на Java), получает входные данные, состоящие из трех видов частей, разделенных косой чертой /
. Части могут быть одной из следующих:
- A имя , соответствующее регулярному выражению
\w*
- A вызов , соответствующий выражению
\w*\(.*\)
- A путь , соответствующий выражению
<.*>|\".*\"
. путь может содержать косую черту.
Пример строки может выглядеть следующим образом:
bar/foo()/foo(bar)/<foo/bar>/bar/"foo/bar"/foo()
, который имеет следующую структуру
name/call/call/path/name/path/call
Я хочу разбить эту строку на части, и я пытаюсь сделать это с помощью регулярного выражения. Мое текущее выражение фиксирует косые черты после вызовов и путей , но у меня возникают проблемы с получением, чтобы оно захватывало косые черты после имён , не включая также косые черты, которые могут существовать в путях , Мое текущее выражение, просто запись слешей после путей и вызовов выглядит следующим образом:
(?<=[\)>\"])/
Как можно расширить это выражение, чтобы оно также захватывало косую черту после имен , не включая косые черты в путях ?