mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	#25517: merge with 3.5.
This commit is contained in:
		
						commit
						1d37771292
					
				
					 1 changed files with 4 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -1004,17 +1004,18 @@ confusing.
 | 
			
		|||
 | 
			
		||||
A negative lookahead cuts through all this confusion:
 | 
			
		||||
 | 
			
		||||
``.*[.](?!bat$).*$``  The negative lookahead means: if the expression ``bat``
 | 
			
		||||
``.*[.](?!bat$)[^.]*$``  The negative lookahead means: if the expression ``bat``
 | 
			
		||||
doesn't match at this point, try the rest of the pattern; if ``bat$`` does
 | 
			
		||||
match, the whole pattern will fail.  The trailing ``$`` is required to ensure
 | 
			
		||||
that something like ``sample.batch``, where the extension only starts with
 | 
			
		||||
``bat``, will be allowed.
 | 
			
		||||
``bat``, will be allowed.  The ``[^.]*`` makes sure that the pattern works
 | 
			
		||||
when there are multiple dots in the filename.
 | 
			
		||||
 | 
			
		||||
Excluding another filename extension is now easy; simply add it as an
 | 
			
		||||
alternative inside the assertion.  The following pattern excludes filenames that
 | 
			
		||||
end in either ``bat`` or ``exe``:
 | 
			
		||||
 | 
			
		||||
``.*[.](?!bat$|exe$).*$``
 | 
			
		||||
``.*[.](?!bat$|exe$)[^.]*$``
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Modifying Strings
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue