¿Cómo puedo obtener las posiciones inicial y final de todas las coincidencias usando el módulo re
? Por ejemplo, dado el patrón r'[a-z]'
y la cadena 'a1b2c3d4'
, me gustaría obtener las posiciones donde encuentra cada letra. Idealmente, me gustaría recuperar el texto del partido también.Python Regex - Cómo obtener posiciones y valores de coincidencias
Respuesta
import re
p = re.compile("[a-z]")
for m in p.finditer('a1b2c3d4'):
print m.start(), m.group()
Enlace a documentos: https://docs.python.org /2/library/re.html#re.finditer –
Tomado de
lapso() devuelve tanto iniciar y los índices finales en una única tupla. Como el método de coincidencia solo comprueba si el RE coincide al comienzo de una cadena, start() siempre será cero. Sin embargo, el método de búsqueda de instancias de RegexObject escanea a través de la cadena, por lo que la coincidencia puede no comenzar en cero en ese caso.
>>> p = re.compile('[a-z]+')
>>> print p.match('::: message')
None
>>> m = p.search('::: message') ; print m
<re.MatchObject instance at 80c9650>
>>> m.group()
'message'
>>> m.span()
(4, 11)
combinan con:
En Python 2.2, el método finditer() también está disponible, volviendo una secuencia de instancias MatchObject como un iterador.
>>> p = re.compile(...)
>>> iterator = p.finditer('12 drummers drumming, 11 ... 10 ...')
>>> iterator
<callable-iterator object at 0x401833ac>
>>> for match in iterator:
... print match.span()
...
(0, 2)
(22, 24)
(29, 31)
usted debe ser capaz de hacer algo en el orden de
for match in re.finditer(r'[a-z]', 'a1b2c3d4'):
print match.span()
Puede usarlo como 're.search (r'abbit '," tiene un bit de zanahoria "). Span (0)' - '(4, 9)' –
Para Python 3.x
from re import finditer
for match in finditer("pattern", "string"):
print(match.span(), match.group())
Usted deberá obtener \n
tuplas separadas (que comprende primero y el último de los índices el partido, respectivamente) y el partido en sí, por cada golpe en la cuerda.
- 1. ¿Cómo obtener todas las coincidencias de regex?
- 2. Boost C++ regex - cómo obtener múltiples coincidencias
- 3. coincidencias superpuestas en Regex
- 4. Extraer coincidencias de php regex
- 5. ¿Cómo puedo capturar varias coincidencias de la misma Perl regex?
- 6. ¿Cómo puedo comparar dos listas en python y devolver coincidencias?
- 7. En Python, ¿cómo comparar dos listas y obtener todos los índices de coincidencias?
- 8. CÓMO: Archivos de coincidencias de Apache Camel, Regex
- 9. Regex: ¿Cómo obtener un nombre de grupo
- 10. Bucle infinito usando un par de coincidencias Perl regex
- 11. Contar el número de coincidencias
- 12. ¿Cómo obtener coincidencias en iOS usando expresiones regulares?
- 13. python, regex split y carácter especial
- 14. Ruby Regex vs Python Regex
- 15. Sin coincidencias de ruta [OBTENER]/activos
- 16. ¿Cómo clasifico los valores de matriz con valores duplicados y omitiendo algunas posiciones si hay un empate?
- 17. ¿Cómo obtener valores enteros de una cadena en Python?
- 18. Cómo obtener el recuento total de coincidencias en Solr/lucene
- 19. ¿Cómo obtener múltiples coincidencias de expresiones regulares en Java?
- 20. Python regex findall
- 21. Patrón Regex para valores numéricos
- 22. Python regex con look behind y alternativas
- 23. Estándar Regex vs python regex discrepancia
- 24. ¿Cómo puedo obtener las coincidencias cuando uso preg_replace en PHP?
- 25. Python RegEx Coincidencia de nueva línea
- 26. ¿Cómo puedo usar lookbehind en un C# Regex para omitir coincidencias de patrones de prefijos repetidos?
- 27. Python regex string matching?
- 28. Python regex para entero?
- 29. Cómo obtener valores de IGrouping
- 30. ¿Cómo sustituir los comandos `find` con` logical indexing` (MATLAB), para buscar posiciones de valores vectoriales de valores únicos?
Vea si esto ayuda [Match Objects] (http://www.python.org/doc/2.5.2/lib/match-objects.html) – EBGreen