Я пытаюсь поймать последнюю часть после последней обратной косой черты,
мне нужен \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
источник
(?:
начало группы без захвата. Это.
любой символ, проверяется любой символ, если за ним не стоит ``.$
. Стандарт - это конец строки, а многострочный - конец строки. Поскольку тестовый текст в Regexr состоит из нескольких строк, мне нужна эта опция.(?:[^\\/](?!(\\|/)))+$
удаляет косую черту в начале и справляется как с прямой, так и с обратной косой чертой. Он также соответствует всей строке для путей без косой черты, например manual.doc(?:(?!\\).)+
. ( ref ) Кроме того, в вашем примере с RegExr для разделения компонентов пути используются две обратные косые черты; должен быть только один, а регулярное выражение должно соответствовать только одному. ( демо )У меня сработало следующее:
Попробуйте онлайн!
Объяснение:
источник
Отрицательный взгляд в будущее - правильный ответ, но его можно записать более четко, например:
Это ищет вхождение \, а затем при проверке, которая не сопоставляется, ищет любое количество символов, за которыми следует символ, который вы не хотите видеть после него. Поскольку он отрицательный, он соответствует только в том случае, если он не находит совпадения.
источник
Вы можете попробовать прикрепить его к концу веревки, например
\\[^\\]*$
. Хотя я не уверен, нужно ли обязательно использовать регулярное выражение для этой задачи.источник
([^\/]*)$
совпадает с именем файла в пути к ящику Linux. Вы можете объяснить, как^
в этом контексте работает каретка ? Я когда-либо использовал его только для обозначения начала струн.[^\/]
соответствует любому символу, кроме/
.Что насчет этого регулярного выражения:
\\[^\\]+$
источник
Если вы не хотите включать обратную косую черту, а только текст после нее, попробуйте следующее:
([^\\]+)$
или для unix:([^\/]+)$
источник
Я использовал ниже регулярное выражение, чтобы получить этот результат также, когда он закончился
\
[Regex Demo]
источник