PATH:
usr
/
lib64
/
python2.7
/
Tools
/
scripts
#! /usr/bin/env python """Basic regular expression demostration facility (Perl style syntax).""" from Tkinter import * import re class ReDemo: def __init__(self, master): self.master = master self.promptdisplay = Label(self.master, anchor=W, text="Enter a Perl-style regular expression:") self.promptdisplay.pack(side=TOP, fill=X) self.regexdisplay = Entry(self.master) self.regexdisplay.pack(fill=X) self.regexdisplay.focus_set() self.addoptions() self.statusdisplay = Label(self.master, text="", anchor=W) self.statusdisplay.pack(side=TOP, fill=X) self.labeldisplay = Label(self.master, anchor=W, text="Enter a string to search:") self.labeldisplay.pack(fill=X) self.labeldisplay.pack(fill=X) self.showframe = Frame(master) self.showframe.pack(fill=X, anchor=W) self.showvar = StringVar(master) self.showvar.set("first") self.showfirstradio = Radiobutton(self.showframe, text="Highlight first match", variable=self.showvar, value="first", command=self.recompile) self.showfirstradio.pack(side=LEFT) self.showallradio = Radiobutton(self.showframe, text="Highlight all matches", variable=self.showvar, value="all", command=self.recompile) self.showallradio.pack(side=LEFT) self.stringdisplay = Text(self.master, width=60, height=4) self.stringdisplay.pack(fill=BOTH, expand=1) self.stringdisplay.tag_configure("hit", background="yellow") self.grouplabel = Label(self.master, text="Groups:", anchor=W) self.grouplabel.pack(fill=X) self.grouplist = Listbox(self.master) self.grouplist.pack(expand=1, fill=BOTH) self.regexdisplay.bind('<Key>', self.recompile) self.stringdisplay.bind('<Key>', self.reevaluate) self.compiled = None self.recompile() btags = self.regexdisplay.bindtags() self.regexdisplay.bindtags(btags[1:] + btags[:1]) btags = self.stringdisplay.bindtags() self.stringdisplay.bindtags(btags[1:] + btags[:1]) def addoptions(self): self.frames = [] self.boxes = [] self.vars = [] for name in ('IGNORECASE', 'LOCALE', 'MULTILINE', 'DOTALL', 'VERBOSE'): if len(self.boxes) % 3 == 0: frame = Frame(self.master) frame.pack(fill=X) self.frames.append(frame) val = getattr(re, name) var = IntVar() box = Checkbutton(frame, variable=var, text=name, offvalue=0, onvalue=val, command=self.recompile) box.pack(side=LEFT) self.boxes.append(box) self.vars.append(var) def getflags(self): flags = 0 for var in self.vars: flags = flags | var.get() flags = flags return flags def recompile(self, event=None): try: self.compiled = re.compile(self.regexdisplay.get(), self.getflags()) bg = self.promptdisplay['background'] self.statusdisplay.config(text="", background=bg) except re.error, msg: self.compiled = None self.statusdisplay.config( text="re.error: %s" % str(msg), background="red") self.reevaluate() def reevaluate(self, event=None): try: self.stringdisplay.tag_remove("hit", "1.0", END) except TclError: pass try: self.stringdisplay.tag_remove("hit0", "1.0", END) except TclError: pass self.grouplist.delete(0, END) if not self.compiled: return self.stringdisplay.tag_configure("hit", background="yellow") self.stringdisplay.tag_configure("hit0", background="orange") text = self.stringdisplay.get("1.0", END) last = 0 nmatches = 0 while last <= len(text): m = self.compiled.search(text, last) if m is None: break first, last = m.span() if last == first: last = first+1 tag = "hit0" else: tag = "hit" pfirst = "1.0 + %d chars" % first plast = "1.0 + %d chars" % last self.stringdisplay.tag_add(tag, pfirst, plast) if nmatches == 0: self.stringdisplay.yview_pickplace(pfirst) groups = list(m.groups()) groups.insert(0, m.group()) for i in range(len(groups)): g = "%2d: %r" % (i, groups[i]) self.grouplist.insert(END, g) nmatches = nmatches + 1 if self.showvar.get() == "first": break if nmatches == 0: self.statusdisplay.config(text="(no match)", background="yellow") else: self.statusdisplay.config(text="") # Main function, run when invoked as a stand-alone Python program. def main(): root = Tk() demo = ReDemo(root) root.protocol('WM_DELETE_WINDOW', root.quit) root.mainloop() if __name__ == '__main__': main()
[+]
..
[-] setup.pyo
[edit]
[-] classfix.py
[edit]
[-] cvsfiles.pyo
[edit]
[-] fixps.pyc
[edit]
[-] fixdiv.py
[edit]
[-] ptags.pyc
[edit]
[-] pysource.pyc
[edit]
[-] h2py.py
[edit]
[-] svneol.py
[edit]
[-] win_add2path.pyc
[edit]
[-] suff.py
[edit]
[-] untabify.py
[edit]
[-] parseentities.py
[edit]
[-] objgraph.pyc
[edit]
[-] mailerdaemon.pyo
[edit]
[-] findlinksto.pyo
[edit]
[-] checkappend.py
[edit]
[-] fixps.py
[edit]
[-] untabify.pyo
[edit]
[-] setup.py
[edit]
[-] find_recursionlimit.pyc
[edit]
[-] nm2def.pyc
[edit]
[-] copytime.pyo
[edit]
[-] dutree.pyc
[edit]
[-] which.py
[edit]
[-] db2pickle.pyo
[edit]
[-] serve.pyo
[edit]
[-] svneol.pyc
[edit]
[-] lll.py
[edit]
[-] pindent.pyc
[edit]
[-] h2py.pyo
[edit]
[-] lll.pyo
[edit]
[-] analyze_dxp.py
[edit]
[-] byteyears.pyc
[edit]
[-] reindent-rst.pyo
[edit]
[-] serve.py
[edit]
[-] mkreal.py
[edit]
[-] ndiff.pyo
[edit]
[-] combinerefs.pyc
[edit]
[-] diff.pyc
[edit]
[-] fixnotice.pyo
[edit]
[-] texcheck.pyc
[edit]
[-] analyze_dxp.pyo
[edit]
[-] byext.py
[edit]
[-] dutree.py
[edit]
[-] which.pyc
[edit]
[-] texcheck.pyo
[edit]
[-] reindent.pyo
[edit]
[-] methfix.pyo
[edit]
[-] ndiff.py
[edit]
[-] texi2html.pyc
[edit]
[-] parseentities.pyc
[edit]
[-] checkpyc.pyc
[edit]
[-] hotshotmain.py
[edit]
[-] ftpmirror.pyo
[edit]
[-] fixps.pyo
[edit]
[-] redemo.pyo
[edit]
[-] fixcid.pyo
[edit]
[-] finddiv.pyo
[edit]
[-] which.pyo
[edit]
[-] redemo.py
[edit]
[-] suff.pyc
[edit]
[-] cleanfuture.py
[edit]
[-] combinerefs.py
[edit]
[-] ptags.pyo
[edit]
[-] byext.pyc
[edit]
[-] db2pickle.py
[edit]
[-] cvsfiles.py
[edit]
[-] pindent.py
[edit]
[-] diff.pyo
[edit]
[-] analyze_dxp.pyc
[edit]
[-] cleanfuture.pyo
[edit]
[-] dutree.pyo
[edit]
[-] eptags.pyo
[edit]
[-] pysource.py
[edit]
[-] reindent.pyc
[edit]
[-] google.pyc
[edit]
[-] logmerge.py
[edit]
[-] lfcr.py
[edit]
[-] finddiv.pyc
[edit]
[-] classfix.pyo
[edit]
[-] lfcr.pyo
[edit]
[-] treesync.py
[edit]
[-] hotshotmain.pyo
[edit]
[-] nm2def.py
[edit]
[-] byext.pyo
[edit]
[-] ftpmirror.py
[edit]
[-] treesync.pyc
[edit]
[-] copytime.py
[edit]
[-] finddiv.py
[edit]
[-] ifdef.py
[edit]
[-] patchcheck.pyo
[edit]
[-] objgraph.pyo
[edit]
[-] ptags.py
[edit]
[-] objgraph.py
[edit]
[-] cvsfiles.pyc
[edit]
[-] pysource.pyo
[edit]
[-] pathfix.py
[edit]
[-] linktree.pyc
[edit]
[-] eptags.py
[edit]
[-] patchcheck.py
[edit]
[-] mkreal.pyc
[edit]
[-] rgrep.pyc
[edit]
[-] google.py
[edit]
[-] win_add2path.py
[edit]
[-] texcheck.py
[edit]
[-] pathfix.pyo
[edit]
[-] gprof2html.py
[edit]
[-] pickle2db.pyc
[edit]
[-] findnocoding.pyc
[edit]
[-] nm2def.pyo
[edit]
[-] checkappend.pyo
[edit]
[-] texi2html.py
[edit]
[-] crlf.pyc
[edit]
[-] treesync.pyo
[edit]
[-] findlinksto.py
[edit]
[-] pdeps.pyc
[edit]
[-] fixheader.pyo
[edit]
[-] pdeps.pyo
[edit]
[-] findnocoding.py
[edit]
[-] setup.pyc
[edit]
[-] methfix.pyc
[edit]
[-] logmerge.pyo
[edit]
[-] reindent.py
[edit]
[-] hotshotmain.pyc
[edit]
[-] gprof2html.pyc
[edit]
[-] redemo.pyc
[edit]
[-] fixheader.py
[edit]
[-] diff.py
[edit]
[-] classfix.pyc
[edit]
[-] ftpmirror.pyc
[edit]
[-] google.pyo
[edit]
[-] db2pickle.pyc
[edit]
[-] pathfix.pyc
[edit]
[-] ifdef.pyo
[edit]
[-] xxci.pyc
[edit]
[-] rgrep.pyo
[edit]
[-] cleanfuture.pyc
[edit]
[-] reindent-rst.pyc
[edit]
[-] svneol.pyo
[edit]
[-] xxci.pyo
[edit]
[-] parseentities.pyo
[edit]
[-] md5sum.py
[edit]
[-] eptags.pyc
[edit]
[-] mailerdaemon.pyc
[edit]
[-] pickle2db.pyo
[edit]
[-] win_add2path.pyo
[edit]
[-] serve.pyc
[edit]
[-] byteyears.pyo
[edit]
[-] fixdiv.pyo
[edit]
[-] logmerge.pyc
[edit]
[-] pickle2db.py
[edit]
[-] checkpyc.pyo
[edit]
[-] fixdiv.pyc
[edit]
[-] find_recursionlimit.py
[edit]
[-] crlf.pyo
[edit]
[-] suff.pyo
[edit]
[-] lll.pyc
[edit]
[-] rgrep.py
[edit]
[-] untabify.pyc
[edit]
[-] ifdef.pyc
[edit]
[-] fixheader.pyc
[edit]
[-] fixcid.pyc
[edit]
[-] crlf.py
[edit]
[-] checkappend.pyc
[edit]
[-] xxci.py
[edit]
[-] findnocoding.pyo
[edit]
[-] mkreal.pyo
[edit]
[-] patchcheck.pyc
[edit]
[-] linktree.pyo
[edit]
[-] texi2html.pyo
[edit]
[-] fixcid.py
[edit]
[-] ndiff.pyc
[edit]
[-] md5sum.pyo
[edit]
[-] findlinksto.pyc
[edit]
[-] reindent-rst.py
[edit]
[-] linktree.py
[edit]
[-] byteyears.py
[edit]
[-] md5sum.pyc
[edit]
[-] copytime.pyc
[edit]
[-] combinerefs.pyo
[edit]
[-] fixnotice.py
[edit]
[-] pdeps.py
[edit]
[-] fixnotice.pyc
[edit]
[-] lfcr.pyc
[edit]
[-] checkpyc.py
[edit]
[-] methfix.py
[edit]
[-] pindent.pyo
[edit]
[-] mailerdaemon.py
[edit]
[-] gprof2html.pyo
[edit]
[-] h2py.pyc
[edit]
[-] find_recursionlimit.pyo
[edit]