Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter中的正则表达式模式替换_Python_Regex_Tkinter - Fatal编程技术网

Python Tkinter中的正则表达式模式替换

Python Tkinter中的正则表达式模式替换,python,regex,tkinter,Python,Regex,Tkinter,披露:代码不是我自己的,只是从互联网上编辑并添加了正则表达式功能 我想在文本中查找数字,并使用Regex将其替换为'number'标记,下面的代码就是这样做的。我使用tkinter从用户那里获取文本 from tkinter import * root=Tk() def Reg_ex(): inputValue=textBox.get("1.0","end-1c") A = re.sub("\d+", '<numb

披露:代码不是我自己的,只是从互联网上编辑并添加了正则表达式功能

我想在文本中查找数字,并使用Regex将其替换为'number'标记,下面的代码就是这样做的。我使用tkinter从用户那里获取文本

from tkinter import *
root=Tk()
def Reg_ex():
    inputValue=textBox.get("1.0","end-1c")
    A = re.sub("\d+", '<number>',inputValue)
    print(A)
textBox=Text(root, height=40, width=50)
textBox.pack()
buttonCommit=Button(root, height=1, width=10, text="Reg_number", 
                    command= Reg_ex)
buttonCommit.pack()
mainloop()
从tkinter导入*
root=Tk()
def Reg_ex():
inputValue=textBox.get(“1.0”,“end-1c”)
A=re.sub(“\d+”,“”,inputValue)
印刷品(A)
文本框=文本(根,高度=40,宽度=50)
textBox.pack()
buttonCommit=按钮(根,高度=1,宽度=10,text=“Reg\u编号”,
命令=Reg_ex)
buttonCommit.pack()
mainloop()
障碍:如何将打印输出写回文本框供用户查看

目前它在终端中打印,但我希望输出返回到文本区域,以便用户看到原始文本替换为reg_ex处理文本


请帮忙

您可以使用
Text
小部件的
replace
方法

import tkinter as tk, re

root = tk.Tk() 

textbox = tk.Text(root, height=40, width=50)
textbox.pack()

def replace():
    textbox.replace('1.0', 'end', re.sub("\d+", '<number>', textbox.get('1.0', 'end')))
    
tk.Button(root, width=10, text="replace #'s", command=replace).pack()

root.mainloop()

我建议您使用另一个
文本
。前半部分用于输入文本,后半部分用于输出文本。然后,您可以使用
text.insert(“END”,value)
将输入文本按所需格式插入到输出文本中
import tkinter as tk, re

root = tk.Tk() 

textbox = tk.Text(root, height=40, width=50)
textbox.pack()

def replace(pattern, repl, count=0, flags=0, rng=('1.0', 'end')):
    textbox.replace(*rng, re.sub(pattern, repl, textbox.get(*rng), count, flags))
    
tk.Button(root, width=10, text="replace #'s", command=lambda: replace('\d+', '<number>')).pack()

root.mainloop()