Я пытаюсь изменить свой разделитель регулярных выражений.Как совместить все до последнего появления специального набора символов?
Мое выражение просто: соответствует один или несколько вхождений из CharacterSet: \s*[|()!=\s]+
Бегущий по этому примеру даст:
(output !==(not output)) | (output)
//output, not output, output
Теперь я хочу следующее: «если =
персонаж встречается,, затем за спиной все позади до последнего появления снова того же набора символов ».
Опять же, глядя на пример выше, он может увидеть первый =
, и должен тогда соответствовать следующим полностью: !==(not output)) | (
Как это можно сделать?
Почему должны идти только на '(' и не вплоть до ')' (что на самом деле является последним вхождением одного из заданных символов)? –
Ну, это всего лишь пример. Все, что я хочу достичь, - это, как написано выше: «если возникает символ' = ', тогда сопоставьте все позади до последнего появления снова одного и того же набора символов». Так что он принимает целую строку '= (not output)) | (' – membersound
Небольшое улучшение: в' \ s * [|()! = \ S] + 'вам не нужно' \ s * 'при запуске, так как оно уже включено в' [|()! = \ S] 'Может быть, вы хотели' \ s + '? – Pshemo