parameters: (pattern)
return_statement: return pattern_re
docstring: Translate a shell-like glob pattern to a regular expression.
  
      Return a string containing the regex.  Differs from
      'fnmatch.translate()' in that '*' does not match "special characters"
      (which are platform-specific).
docstring_summary: Translate a shell-like glob pattern to a regular expression.
docstring_tokens: Translate a shell - like glob pattern to a regular expression .
function: def glob_to_re(pattern):
      """Translate a shell-like glob pattern to a regular expression.
  
      Return a string containing the regex.  Differs from
      'fnmatch.translate()' in that '*' does not match "special characters"
      (which are platform-specific).
      """
      pattern_re = fnmatch.translate(pattern)
  
      # '?' and '*' in the glob pattern become '.' and '.*' in the RE, which
      # IMHO is wrong -- '?' and '*' aren't supposed to match slash in Unix,
      # and by extension they shouldn't match such "special characters" under
      # any OS.  So change all non-escaped dots in the RE to match any
      # character except the special characters.
      # XXX currently the "special characters" are just slash -- i.e. this is
      # Unix-only.
      pattern_re = re.sub(r'((?<!\\)(\\\\)*)\.', r'\1[^/]', pattern_re)
  
      return pattern_re
function_tokens: def glob_to_re ( pattern ) : pattern_re = fnmatch . translate ( pattern ) # '?' and '*' in the glob pattern become '.' and '.*' in the RE, which # IMHO is wrong -- '?' and '*' aren't supposed to match slash in Unix, # and by extension they shouldn't match such "special characters" under # any OS.  So change all non-escaped dots in the RE to match any # character except the special characters. # XXX currently the "special characters" are just slash -- i.e. this is # Unix-only. pattern_re = re . sub ( r'((?<!\\)(\\\\)*)\.' , r'\1[^/]' , pattern_re ) return pattern_re