Estoy tratando de capturar la última parte después de la última barra invertida.Necesito
el \Web_ERP_Assistant
(con el \
)
Mi idea fue:
C:\Projects\Ensure_Solution\Assistance\App_WebReferences\Web_ERP_WebService\Web_ERP_Assistant
\\.+?(?!\\) // I know there is something with negative look -ahead `(?!\\)`
Pero no puedo encontrarlo.
Respuestas:
Su solución de anticipación negativa sería, por ejemplo, esta:
Verlo aquí en RegExr
fuente
(?:
es el comienzo de un grupo sin captura. El.
es cualquier carácter, esto verifica cualquier carácter si no va seguido de un ``.$
. Estándar es el final de la cadena, con Multiline su final de la fila. Debido a que el texto de prueba en Regexr tiene varias filas, necesito esta opción allí.(?:[^\\/](?!(\\|/)))+$
elimina la barra al principio y hace frente a las barras inclinadas hacia adelante y hacia atrás. También hace coincidir la cadena completa para las rutas sin barras inclinadas, por ejemplo, manual.doc(?:(?!\\).)+
. ( ref ) Además, su ejemplo en RegExr usa dos barras invertidas para separar los componentes de la ruta; debe haber solo uno, y la expresión regular debe coincidir solo con uno. ( demo )Uno que funcionó para mí fue:
¡Pruébelo en línea!
Explicación:
fuente
Una mirada negativa al futuro es una respuesta correcta, pero se puede escribir de manera más clara como:
Esto busca una aparición de \ y luego, en una comprobación que no coincide, busca cualquier número de caracteres seguido del carácter que no desea ver después. Debido a que es negativo, solo coincide si no encuentra una coincidencia.
fuente
Puedes intentar anclarlo al final de la cuerda, algo así como
\\[^\\]*$
. Aunque no estoy seguro de si es absolutamente necesario usar expresiones regulares para la tarea.fuente
([^\/]*)$
coincide con el nombre del archivo en una ruta para un cuadro de Linux. ¿Puede explicar cómo funciona el símbolo de intercalación^
en este contexto? Solo lo he usado para indicar el comienzo de las cadenas.[^\/]
coincide con cualquier carácter excepto/
.¿Qué pasa con esta expresión regular:
\\[^\\]+$
fuente
Si no desea incluir la barra invertida, sino solo el texto posterior, intente esto:
([^\\]+)$
o para Unix:([^\/]+)$
fuente
Usé la expresión regular a continuación para obtener ese resultado también cuando terminó con un
\
[Regex Demo]
fuente