issue with regular expressions

Matt Wheeler m at funkyhat.org
Tue Oct 22 05:29:27 EDT 2019


On Tue, 22 Oct 2019, 09:44 joseph pareti, <joepareti54 at gmail.com> wrote:

> the following code ends in an exception:
>
> import re
> pattern = 'Sottoscrizione unica soluzione'
> mylines = []                                # Declare an empty list.

with open ('tmp.txt', 'rt') as myfile:      # Open tmp.txt for reading text.
>     for myline in myfile:                   # For each line in the file,
>         mylines.append(myline.rstrip('\n')) # strip newline and add to
> list.
> for element in mylines:                     # For each element in the list,
> #    print(element)
>    match = re.search(pattern, element)
>    s = match.start()
>    e = match.end()
>    print(element[s:e])
>
>
>
> F:\October20-2019-RECOVERY\Unicredit_recovery\tmp_re_search>c:\Users\joepareti\Miniconda3\pkgs\python-3.7.1-h8c8aaf0_6\python.exe
> search_0.py
> Traceback (most recent call last):
>   File "search_0.py", line 10, in <module>
>     s = match.start()
> AttributeError: 'NoneType' object has no attribute 'start'
>
> any help? Thanks
>

Check over the docs for re.match again, you'll see it returns either a
Match object (which is always truthy), or None.

So a simple solution is to wrap your attempts to use the Match object in

```
if match:
    ...
```

>



More information about the Python-list mailing list