Python: Regex and String Length in byte
Question: I am writing a program in python and have some question (I am 100% new to
python):

    
    
    import re
    
    rawData = '7I+8I-7I-9I-8I-'
    
    print len(rawData)
    
    rawData = re.sub("[0-9]I\+","",rawData)
    rawData = re.sub("[0-9]I\-","",rawData)
    
    print rawData
    

  1. How to merge the 2 regex into one using `|`? It means it will get rid of both `9I-` and `9I+` using just one regex operation.
  2. Does len(rawData) return the length of rawData is byte?

Thank you.


Answer: See the difference:

    
    
    $ python3
    Python 3.1.3 (r313:86834, May 20 2011, 06:10:42) 
    [GCC 4.4.5] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> len('día')   # Unicode text
    3
    >>> 
    
    $ python
    Python 2.7.1 (r271:86832, May 20 2011, 17:19:04) 
    [GCC 4.4.5] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> len('día')   # bytes
    4
    >>> len(u'día')  # Unicode text
    3
    >>>
    
    
    Python 3.1.3 (r313:86834, May 20 2011, 06:10:42) 
    [GCC 4.4.5] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> len(b'día')
      File "<stdin>", line 1
    SyntaxError: bytes can only contain ASCII literal characters.
    >>> len(b'dia')
    3
    >>> 
    

