Ответ 1
Ваше отрицательное решение может быть, например, будь это:
\\(?:.(?!\\))+$
Смотрите здесь, в Regexr
Я пытаюсь поймать последнюю часть после последней обратной косой черты
Мне нужен \Web_ERP_Assistant
(с \
)
Моя идея:
C:\Projects\Ensure_Solution\Assistance\App_WebReferences\Web_ERP_WebService\Web_ERP_Assistant
\\.+?(?!\\) // I know there is something with negative look -ahead `(?!\\)`
Но я не могу его найти.
Ваше отрицательное решение может быть, например, будь это:
\\(?:.(?!\\))+$
Смотрите здесь, в Regexr
Отрицательный взгляд вперед - правильный ответ, но его можно написать более чисто:
(\\)(?!.*\\)
Это ищет появление \, а затем в чеке, который не соответствует, он ищет любое количество символов, за которым следует символ, который вы не хотите видеть после него. Поскольку он отрицательный, он соответствует только если он не находит соответствия.
Вы можете попробовать привязать его к концу строки, что-то вроде \\[^\\]*$
. Хотя я не уверен, что абсолютно необходимо использовать regexp для задачи.
Тот, который работал у меня, был:
.+(\\.+)$
Пояснение:
.+ - any character except newline
( - create a group
\\.+ - match a backslash, and any characters after it
) - end group
$ - this all has to happen at the end of the string
Как насчет этого регулярного выражения: \\[^\\]+$
Я использовал ниже regex, чтобы получить этот результат также, когда его закончил с помощью \
(\\[^\\]+)\\?$