classification
Title: Regular Expression Dot-Star patter matching - re- text skipping
Type: behavior Stage: resolved
Components: Regular Expressions Versions: Python 3.7
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: SilentGhost, djr_python, ezio.melotti, mrabarnett, paul.moore, steve.dower, terry.reedy, tim.golden, zach.ware
Priority: normal Keywords:

Created on 2019-04-02 18:06 by djr_python, last changed 2019-04-02 18:16 by SilentGhost. This issue is now closed.

Messages (2)
msg339357 - (view) Author: DJR (djr_python) Date: 2019-04-02 18:06
#Python 3.7.2 Tk version 8.6.8
#IDLE version: 3.7.2
#Following code does not return ALL the partial matched patters within a string

import re
    #_____________
    #Normal Mode
    #_____________

atRegex = re.compile(r'...at')
TextStr=(atRegex.findall(':at-at~at:  The Bigcat sat in the hat sat on the flat sat mat sat.'))
print('\nFull Text String:---> :at-at~at: The Bigcat sat in the hat sat on the flat sat mat sat\n')
print('\n Normal Mode: Returns\n' +  ':--->' + str(TextStr))


    #_____________
    #Greedy Mode
    #_____________

atRegex = re.compile(r'...at*')
TextStr=(atRegex.findall(':at-at~at:  The Bigcat sat in the hat sat on the flat sat mat sat.'))
print('\nFull Text String:---> :at-at~at: The Bigcat sat in the hat sat on the flat sat mat sat mat\n')
print('\n Greedy Mode: Returns\n' +  ':---> ' + str(TextStr)+'\n')

"""
#===================================================================
# IDLE OutPut Normal Mode and Greedy Mode:  multiple 'sat' are missing 
#===================================================================
Full Text String:---> :at-at~at: The Bigcat sat in the hat sat on the flat sat mat sat.

 Normal Mode: Returns
	:---> ['at-at', 'igcat', 'e hat', ' flat', 't mat']


Full Text String:---> :at-at~at: The Bigcat sat in the hat sat on the flat sat mat sat.


 Greedy Mode: Returns
	:---> ['at-at', 'igcat', 'e hat', ' flat', 't mat']

"""
msg339360 - (view) Author: SilentGhost (SilentGhost) * (Python triager) Date: 2019-04-02 18:16
re.findall returns non-overlapping matches (as is made clear in documentation). This is the behaviour you're observing.
History
Date User Action Args
2019-04-02 18:16:14SilentGhostsetstatus: open -> closed

assignee: terry.reedy ->
components: - IDLE, Library (Lib), Windows

nosy: + SilentGhost
messages: + msg339360
resolution: not a bug
stage: resolved
2019-04-02 18:06:08djr_pythoncreate