lz270978971 发表于 2020-7-30 17:22

一个简单的正则小工具

最近在学习pyqt,写了一个简单的验证正则的小工具,仅供学习交流使用
需要安装 PyQt5 :pip install PyQt==5.15.0

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file '正则.ui'
#
# Created by: PyQt5 UI code generator 5.15.0
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.Do not edit this file unless you know what you are doing.

import sys
import re
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
      MainWindow.setObjectName("MainWindow")
      MainWindow.resize(800, 600)
      self.centralwidget = QtWidgets.QWidget(MainWindow)
      self.centralwidget.setObjectName("centralwidget")
      self.excel_label = QtWidgets.QLabel(self.centralwidget)
      self.excel_label.setGeometry(QtCore.QRect(280, 20, 211, 20))
      self.excel_label.setLayoutDirection(QtCore.Qt.LeftToRight)
      self.excel_label.setTextFormat(QtCore.Qt.AutoText)
      self.excel_label.setObjectName("excel_label")
      self.textBrowser = QtWidgets.QTextBrowser(self.centralwidget)
      self.textBrowser.setGeometry(QtCore.QRect(190, 260, 351, 201))
      self.textBrowser.setObjectName("textBrowser")
      self.content_textEdit = QtWidgets.QLineEdit(self.centralwidget)
      self.content_textEdit.setGeometry(QtCore.QRect(190, 100, 351, 78))
      self.content_textEdit.setObjectName("content_textEdit")
      self.start_pushButton = QtWidgets.QPushButton(self.centralwidget)
      self.start_pushButton.setGeometry(QtCore.QRect(60, 340, 112, 32))
      self.start_pushButton.setObjectName("start_pushButton")
      self.re_lineEdit = QtWidgets.QLineEdit(self.centralwidget)
      self.re_lineEdit.setGeometry(QtCore.QRect(190, 220, 113, 21))
      self.re_lineEdit.setObjectName("re_lineEdit")
      self.label = QtWidgets.QLabel(self.centralwidget)
      self.label.setGeometry(QtCore.QRect(80, 120, 58, 16))
      self.label.setObjectName("label")
      self.label_2 = QtWidgets.QLabel(self.centralwidget)
      self.label_2.setGeometry(QtCore.QRect(80, 220, 81, 16))
      self.label_2.setObjectName("label_2")
      MainWindow.setCentralWidget(self.centralwidget)
      self.statusbar = QtWidgets.QStatusBar(MainWindow)
      self.statusbar.setObjectName("statusbar")
      MainWindow.setStatusBar(self.statusbar)

      self.retranslateUi(MainWindow)
      QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
      _translate = QtCore.QCoreApplication.translate
      MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
      self.excel_label.setText(_translate("MainWindow", "python正则小工具"))
      self.start_pushButton.setText(_translate("MainWindow", "开始匹配"))
      self.label.setText(_translate("MainWindow", "文本"))
      self.label_2.setText(_translate("MainWindow", "正则表达式"))


class MyMainForm(QMainWindow, Ui_MainWindow):
    def __init__(self):
      super(MyMainForm,self).__init__()
      self.setupUi(self)

      # 添加开始匹配的信号和槽,调用display函数
      self.start_pushButton.clicked.connect(self.display)

    def display(self):
      text = self.content_textEdit.text()
      re_ = self.re_lineEdit.text()
      pattern = re.compile(fr"{re_}")
      m = pattern.findall(text)
      re_text = f"匹配结果:\n{m}"
      self.textBrowser.setText(re_text)


if __name__ == "__main__":
    # 固定的,PyQt5程序都需要QApplication对象。sys.argv是命令行参数列表,确保程序可以双击运行
    app = QApplication(sys.argv)
    # 初始化
    myWin = MyMainForm()
    # 将窗口控件显示在屏幕上
    myWin.show()
    # 程序运行,sys.exit方法确保程序完整退出。
    sys.exit(app.exec_())

lz270978971 发表于 2020-7-30 17:23

忘记说了,我的版本是python3.7.3

lou.zhichen 发表于 2020-7-30 17:50

Mark一下
(请善用论坛编辑功能,不要自己占沙发啊~)

isroot 发表于 2020-7-30 17:54

学习学习{:17_1068:}

shaer1979 发表于 2020-7-30 17:58

虽然不懂,但是先收藏了。

fys2008 发表于 2020-7-30 18:58

好像没什么用啊

lz270978971 发表于 2020-7-30 19:54

fys2008 发表于 2020-7-30 18:58
好像没什么用啊

正则测试的小工具

laochaguan 发表于 2021-2-2 21:53

感谢分享

zhaoshaok 发表于 2021-2-3 09:57

很不错,收藏!
页: [1]
查看完整版本: 一个简单的正则小工具