Saltar al contenido

Python Regex Coincidencia antes del carácter E Ignorar el espacio en blanco

Si hallas algún error con tu código o proyecto, recuerda probar siempre en un entorno de testing antes aplicar el código al proyecto final.

Solución:

Eso es un poco complicado. Primero comienza a hacer coincidir desde un carácter que no sea un espacio en blanco y luego continúa haciendo coincidir de forma lenta pero segura hasta la posición que es seguida inmediatamente por un número opcional de espacios y una barra oblicua:

S.*?(?= */)

Ver demostración en vivo aquí

Si la marca de barra diagonal podría ser el primer carácter que no sea un espacio en blanco en la entrada string luego reemplaza S con [^s/]:

[^s/].*?(?= */)

Esta expresión es lo que tal vez quieras explorar:

^(.*?)(s+/.*)$

Aquí, tenemos dos grupos de captura en los que el primero recopila la salida deseada y el segundo es el patrón no deseado, delimitado por los caracteres de inicio y finalización, solo para estar seguro de que se puede eliminar si lo desea:

(.*?)(s+/.*)

Prueba de pitón

# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility

import re

regex = r"^(.*?)(s+/.*)$"

test_str = ("123 / some text 123n"
    "anything else    / some text 123")

subst = "\1"

# You can manually specify the number of replacements by changing the 4th argument
result = re.sub(regex, subst, test_str, 0, re.MULTILINE)

if result:
    print (result)

# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.

Demostración de JavaScript

const regex = /^(.*?)(s+/.*)$/gm;
const str = `123 / some text 123
anything else    / some text 123`;
const subst = `n$1`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);

RegEx

Si esta no era su expresión deseada, puede modificar/cambiar sus expresiones en regex101.com.

ingrese la descripción de la imagen aquí

Circuito RegEx

También puede visualizar sus expresiones en jex.im:

ingrese la descripción de la imagen aquí

Espacios

Para los espacios antes de la salida deseada, simplemente podemos agregar un grupo de captura con una mirada negativa hacia atrás:

 ^(s+)?(.*?)(s+/.*)$

Demostración de JavaScript

const regex = /^(s+)?(.*?)(s+/.*)$/gm;
const str = `      123 / some text 123
             anything else    / some text 123
123 / some text 123
anything else    / some text 123`;
const subst = `$2`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);

Manifestación

ingrese la descripción de la imagen aquí

Aquí hay una posible solución.

expresión regular

(?

Ejemplo

# import regex # or re

string = ' 123 / some text 123'
test = regex.search(r'(?

Breve explicación

  • (? dice ante un posible partido no puede haber / símbolo.
  • S.*S coincide perezosamente cualquier cosa (.*) asegurándose de que no empiece ni termine con un espacio en blanco (S)
  • (?=s*/) significa que una posible coincidencia debe ir seguida de una / símbolo o por espacios en blanco + a /.

Comentarios y calificaciones

Si te ha sido útil nuestro artículo, agradeceríamos que lo compartas con otros juniors de esta manera nos ayudas a difundir nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Respuestas a preguntas comunes sobre programacion y tecnología