web-dev-qa-db-fra.com

Regex Dernière occurrence?

J'essaie d'attraper la dernière partie après la dernière barre oblique inverse
J'ai besoin du \Web_ERP_Assistant (avec le \)

Mon idée était: 

C:\Projects\Ensure_Solution\Assistance\App_WebReferences\Web_ERP_WebService\Web_ERP_Assistant


\\.+?(?!\\)      //  I know there is something with negative look -ahead `(?!\\)`

Mais je ne le trouve pas.

[Regexer Demo]

70
Royi Namir

Votre solution de surveillance négative par exemple être ceci:

\\(?:.(?!\\))+$

Voir ici sur Regexr

58
stema

Un regard négatif à l’avenir est une bonne réponse, mais on peut l’écrire plus proprement comme:

(\\)(?!.*\\)

Ceci recherche une occurrence de \, puis dans une vérification qui ne correspond pas, il recherche un nombre quelconque de caractères suivi du caractère que vous ne voulez pas voir après. Parce que c'est négatif, il ne correspond que s'il ne trouve pas de correspondance.

30
TimE

Vous pouvez essayer de l'ancrer à la fin de la chaîne, quelque chose comme \\[^\\]*$. Cependant, je ne suis pas sûr qu'il faille absolument utiliser regexp pour cette tâche.

24

Celui qui a fonctionné pour moi était:

.+(\\.+)$

Essayez-le en ligne!

Explication:

.+     - 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
21
Jeeter

Qu'en est-il de cette regex: \\[^\\]+$

7
SERPRO

J'ai utilisé ci-dessous regex pour obtenir ce résultat aussi quand il est fini par un \

(\\[^\\]+)\\?$

[Regex Demo]

2
shA.t

Si vous ne souhaitez pas inclure la barre oblique inverse, mais uniquement le texte qui le suit, essayez ceci: ([^\\]+)$ ou pour unix: ([^\/]+)$

0
Katja