| 
									
										
										
										
											1998-08-10 19:42:37 +00:00
										 |  |  | \section{\module{fnmatch} --- | 
					
						
							| 
									
										
										
										
											1999-06-10 21:23:31 +00:00
										 |  |  |          \UNIX{} filename pattern matching} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-03-16 16:40:01 +00:00
										 |  |  | \declaremodule{standard}{fnmatch} | 
					
						
							| 
									
										
										
										
											2000-10-09 18:12:29 +00:00
										 |  |  | \modulesynopsis{\UNIX\ shell style filename pattern matching.} | 
					
						
							| 
									
										
										
										
											1998-07-23 17:59:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-04-27 21:25:52 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-04-03 20:13:55 +00:00
										 |  |  | \index{filenames!wildcard expansion} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-01-11 19:06:37 +00:00
										 |  |  | This module provides support for \UNIX{} shell-style wildcards, which | 
					
						
							|  |  |  | are \emph{not} the same as regular expressions (which are documented | 
					
						
							| 
									
										
										
										
											1999-03-16 16:40:01 +00:00
										 |  |  | in the \refmodule{re}\refstmodindex{re} module).  The special | 
					
						
							|  |  |  | characters used in shell-style wildcards are: | 
					
						
							| 
									
										
										
										
											1998-02-16 21:37:58 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-04-03 20:13:55 +00:00
										 |  |  | \begin{tableii}{c|l}{code}{Pattern}{Meaning} | 
					
						
							|  |  |  |   \lineii{*}{matches everything} | 
					
						
							|  |  |  |   \lineii{?}{matches any single character} | 
					
						
							|  |  |  |   \lineii{[\var{seq}]}{matches any character in \var{seq}} | 
					
						
							|  |  |  |   \lineii{[!\var{seq}]}{matches any character not in \var{seq}} | 
					
						
							|  |  |  | \end{tableii} | 
					
						
							| 
									
										
										
										
											1997-04-27 21:25:52 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-01-11 19:06:37 +00:00
										 |  |  | Note that the filename separator (\code{'/'} on \UNIX{}) is \emph{not} | 
					
						
							| 
									
										
										
										
											1999-06-10 21:23:31 +00:00
										 |  |  | special to this module.  See module | 
					
						
							|  |  |  | \refmodule{glob}\refstmodindex{glob} for pathname expansion | 
					
						
							| 
									
										
										
										
											2000-04-03 20:13:55 +00:00
										 |  |  | (\refmodule{glob} uses \function{fnmatch()} to match pathname | 
					
						
							|  |  |  | segments).  Similarly, filenames starting with a period are | 
					
						
							|  |  |  | not special for this module, and are matched by the \code{*} and | 
					
						
							|  |  |  | \code{?} patterns. | 
					
						
							| 
									
										
										
										
											1997-04-27 21:25:52 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1997-11-30 05:53:22 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-01-11 19:06:37 +00:00
										 |  |  | \begin{funcdesc}{fnmatch}{filename, pattern} | 
					
						
							| 
									
										
										
										
											1997-04-27 21:25:52 +00:00
										 |  |  | Test whether the \var{filename} string matches the \var{pattern} | 
					
						
							|  |  |  | string, returning true or false.  If the operating system is | 
					
						
							|  |  |  | case-insensitive, then both parameters will be normalized to all | 
					
						
							| 
									
										
										
										
											2000-04-03 20:13:55 +00:00
										 |  |  | lower- or upper-case before the comparison is performed.  If you | 
					
						
							|  |  |  | require a case-sensitive comparison regardless of whether that's | 
					
						
							| 
									
										
										
										
											1998-02-16 21:37:58 +00:00
										 |  |  | standard for your operating system, use \function{fnmatchcase()} | 
					
						
							|  |  |  | instead. | 
					
						
							| 
									
										
										
										
											1997-04-27 21:25:52 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-01-11 19:06:37 +00:00
										 |  |  | \begin{funcdesc}{fnmatchcase}{filename, pattern} | 
					
						
							| 
									
										
										
										
											1997-04-27 21:25:52 +00:00
										 |  |  | Test whether \var{filename} matches \var{pattern}, returning true or | 
					
						
							| 
									
										
										
										
											2000-04-03 20:13:55 +00:00
										 |  |  | false; the comparison is case-sensitive. | 
					
						
							| 
									
										
										
										
											1997-04-27 21:25:52 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-06-07 19:01:24 +00:00
										 |  |  | \begin{funcdesc}{filter}{names, pattern} | 
					
						
							|  |  |  | Return the subset of the list of \var{names} that match \var{pattern}. | 
					
						
							|  |  |  | It is the same as \code{[n for n in names if fnmatch(n, pattern)]}, but | 
					
						
							|  |  |  | implemented more efficiently. | 
					
						
							| 
									
										
										
										
											2001-06-16 08:14:04 +00:00
										 |  |  | \versionadded{2.2} | 
					
						
							| 
									
										
										
										
											2001-06-07 19:01:24 +00:00
										 |  |  | \end{funcdesc} | 
					
						
							| 
									
										
										
										
											1999-03-16 16:40:01 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1998-01-11 19:06:37 +00:00
										 |  |  | \begin{seealso} | 
					
						
							| 
									
										
										
										
											2000-04-03 20:13:55 +00:00
										 |  |  |   \seemodule{glob}{\UNIX{} shell-style path expansion.} | 
					
						
							| 
									
										
										
										
											1998-01-11 19:06:37 +00:00
										 |  |  | \end{seealso} |