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.
Circuito RegEx
También puede visualizar sus expresiones en jex.im:
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
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.