Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    [Python 2.7] Problema Regex

    Perchè questo funziona:


    codice:
    matches = {
        'a' : r'(.*)',
        'b' : r'\1',
    }
    
    
    asdf = re.sub( matches['a'],  matches['b'], 'Prova')        
    print asdf

    e questo no:


    codice:
    matches = {
        'a' : '(.*)',
        'b' : '\1',
    }
    
    
    asdf = re.sub(r''+ matches['a'],  r''+ matches['b'], 'Prova')        
    print asdf

  2. #2
    non puoi mettere r seguito da ''

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    certo...

    Incollo la risposto di un utente di un forum di python:

    Danno tutti lo stesso risultato:
    leggi sorgentecopia negli appuntistampa?


    • >>> import re
    • >>> re.sub(r'(.*)', r'1', 'Prova')
    • '1'
    • >>> re.sub('(.*)', '1', 'Prova')
    • '1'
    • >>> re.sub(r'' + '(.*)', r'' + '1', 'Prova')
    • '1'



    Probabilmente hai ridotto il tuo problema a un esempio minimale che però non lo riproduce più. Credo che il tuo problema sia invece che matches['a'] contiene dei backslash. Allora le due forme non sono equivalenti. Infatti non esiste un tipo di stringa "raw" diverso da str. Quando scrivi
    leggi sorgentecopia negli appuntistampa?


    • r'' + matches['a']


    non stai convertendo la tua stringa a una stringa "raw", perché è già una stringa e tale rimane. Osserva la differenza:
    leggi sorgentecopia negli appuntistampa?


    • >>> print('a\tb')
    • a b
    • >>> print('a\\tb')
    • a\tb
    • >>> print(r'a\tb')
    • a\tb
    • >>> print(r'' + 'a\tb')
    • a b
    • >>> print(r'' + 'a\\tb')
    • a\tb
    • >>> print(r'' + r'a\tb')
    • a\tb
    • >>> print('' + r'a\tb')
    • a\tb
    • >>> print('' + 'a\\tb')
    • a\tb
    • >>> print('' + 'a\tb')
    • a b



Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.