Regex coincide con un solo carácter entre cadenas -- python campo con regex camp Relacionados El problema

Regex match single characters between strings


1
vote

problema

Español

Tengo una cadena con un marcado que estoy tratando de analizar, generalmente formateado así.

  '[*]  [list][*][*][/list][*]text[list][*][/list]'   

Quiero coincidir con los asteriscos dentro de las etiquetas [LISTA] para que pueda reinsertarlas como [**], pero tengo problemas para formar una expresión para agarrarlos. Hasta ahora, tengo:

  match = re.compile('[list].+?[/list]', re.DOTALL)   

Esto obtiene todo dentro de la lista, pero no puedo descubrir una manera de reducirlo solo a los asteriscos. Cualquier consejo sería apreciado masivamente.

Original en ingles

I have a string with some markup which I'm trying to parse, generally formatted like this.

'[*]\r\n[list][*][*][/list][*]text[list][*][/list]' 

I want to match the asterisks within the [list] tags so I can re.sub them as [**] but I'm having trouble forming an expression to grab them. So far, I have:

match = re.compile('\[list\].+?\[/list\]', re.DOTALL) 

This gets everything within the list, but I can't figure out a way to narrow it down to the asterisks alone. Any advice would be massively appreciated.

     
     
     

Lista de respuestas

0
 
vote
vote
La mejor respuesta
 

Puede usar un re.sub y use un lambda en la parte de reemplazo. Usted pasa el partido a la lambda y usas un mero .replace('*','**') en el valor de coincidencia.

Aquí está el código de muestra:

  import re s = '[*]  [list][*][*][/list][*]text[list][*][/list]' match = re.compile('[list].+?[/list]', re.DOTALL) print(match.sub(lambda m: m.group().replace('*', '**'), s)) # = > [*] #     [list][**][**][/list][*]text[list][**][/list]   

Consulte la Ideone Demo

Tenga en cuenta que un re5 fuera de una clase de caracteres no tiene que escaparse en Python re6 REGEX.

 

You may use a re.sub and use a lambda in the replacement part. You pass the match to the lambda and use a mere .replace('*','**') on the match value.

Here is the sample code:

import re s = '[*]\r\n[list][*][*][/list][*]text[list][*][/list]' match = re.compile('\[list].+?\[/list]', re.DOTALL) print(match.sub(lambda m: m.group().replace('*', '**'), s)) # = > [*] #     [list][**][**][/list][*]text[list][**][/list] 

See the IDEONE demo

Note that a ] outside of a character class does not have to be escaped in Python re regex.

 
 

Relacionados problema

5  DFA -> Expresión regular  ( Dfa regular expression ) 
He escrito un DFA en papel y quiero traducirlo en un conjunto de expresiones regulares. ¿Alguien sabe una buena herramienta para hacer esto? ...

49  Regex: para sacar una subcadena entre dos etiquetas en una cadena  ( Regex to pull out a sub string between two tags in a string ) 
Tengo un archivo en el siguiente formato: Datos de datos Datos [Comienzo] Datos que quiero [Final] Datos Me gustaría agarrar el Data I want de entre el ...

1  Perl: Extraer datos del texto usando REGEX  ( Perl extracting data from text using regex ) 
Estoy usando PERL para procesar el texto con REGEX. No tengo control sobre la entrada. He mostrado algunos ejemplos de la entrada a continuación. Como puede...

2  Regex para encontrar instancia de una palabra o frase, excepto si esa palabra o frase está en llaves  ( Regex to find instance of a word or phrase except if that word or phrase is i ) 
primero, un descargo de responsabilidad. Sé un poco sobre los de Regex's pero no soy experto. Parecen ser algo que realmente necesito dos veces al año, así qu...

6  ¿Posible recuperar un conjunto arbitrario desordenado de grupos nombrados en un swoop con el módulo RE de Python?  ( Possible to retrieve an arbitrary unordered set of named groups in one swoop wit ) 
Esto es súper útil para algunos problemas: >>> re.search('(?P<b>.b.).*(?P<i>.i.)', 'abcdefghijk').groupdict() {'i': 'hij', 'b': 'abc'} ¿Pero qué pasa s...

11  ¿Regex para las estructuras de los árboles?  ( Regex for tree structures ) 
¿Hay equivalentes de expresión regulares para buscar y modificar estructuras de árboles? Mini-idiomas concisos (como PERL REGEX) son lo que estoy buscando. ...

1  excluyendo los caracteres coincidentes en la expresión regular  ( Excluding matching characters in regular expression ) 
Estoy atascado con un problema de expresión regular. Tengo una cadena que necesito hacer coincidir. La cadena siempre comienza con 2 letras y luego le sigue...

2  Quiero encontrar todas las declaraciones de IF en el código C # que no son seguidas de los soportes. A través de regex  ( I want to find all if statements in c sharp code which are not followed by brack ) 
Quiero encontrar todos los estados de cuenta if for que no se siguen por los soportes rizados { '. Cuando escriba una sola línea en una extracción de if...

30  ¿Soporte de expresión regular fácil de usar en C ++? [cerrado]  ( Easy to use regular expression support in c ) 
cerrado. Esta pregunta no cumple con pautas de desbordamiento de pila . Actualmente no está aceptando respuestas. ...

59  ¿Cómo puedo obtener en los partidos al usar PREG_REPLOPLO EN PHP?  ( How can i get at the matches when using preg replace in php ) 
Estoy tratando de tomar las letras mayúsculas de un par de palabras y envolverlos en las etiquetas de span. Estoy usando preg_replace para propósitos de ext...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos