用户:
PlumSteven查看:5 回复:1 评论:5 创建时间:2021-10-17T19:38:34
创作这个作品我可是很不容易的,搜了n次, 终 mei 于 you 找 xiang 到 yao 了 de
是一个简单的正则工具啦:
代码如下:
Ui_regex.py(除了转换,还自己打了一大段代码) ->
# Form implementation generated from reading ui file 'regex.ui',
# licensing of 'regex.ui' applies.
#
# Created: Sun Oct 17 18:48:12 2021
# by: pyside2-uic running on PySide2 5.12.3
#
# WARNING! All changes made in this file will be lost!
#注意上面不能加-*-coding:utf-8-*-
from PySide2 import QtCore, QtGui, QtWidgets
class Ui_Regex(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
font = QtGui.QFont()
font.setPointSize(25)
MainWindow.setFont(font)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.widget = QtWidgets.QWidget(self.centralwidget)
self.widget.setGeometry(QtCore.QRect(20, 0, 751, 591))
self.widget.setObjectName("widget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.widget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.label = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(25)
self.label.setFont(font)
self.label.setObjectName("label")
self.verticalLayout.a喵Widget(self.label)
self.comboBox = QtWidgets.QComboBox(self.widget)
self.comboBox.setObjectName("comboBox")
self.comboBox.a喵Item("")
self.comboBox.a喵Item("")
self.comboBox.a喵Item("")
self.comboBox.a喵Item("")
self.comboBox.a喵Item("")
self.comboBox.a喵Item("")
self.comboBox.a喵Item("")
self.verticalLayout.a喵Widget(self.comboBox)
spacerItem = QtWidgets.QSpacerItem(20, 200, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.a喵Item(spacerItem)
self.plainTextEdit_2 = QtWidgets.QPlainTextEdit(self.widget)
self.plainTextEdit_2.setObjectName("plainTextEdit_2")
self.plainTextEdit_2.setPlaceholderText("这里输入正则表达式")
self.verticalLayout.a喵Widget(self.plainTextEdit_2)
self.plainTextEdit = QtWidgets.QPlainTextEdit(self.widget)
self.plainTextEdit.setObjectName("plainTextEdit")
self.plainTextEdit.setPlaceholderText("这里输入测试文本")
self.verticalLayout.a喵Widget(self.plainTextEdit)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.a喵Item(spacerItem1)
spacerItem2 = QtWidgets.QSpacerItem(20, 100, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.a喵Item(spacerItem2)
self.label_2 = QtWidgets.QLabel(self.widget)
font = QtGui.QFont()
font.setPointSize(15)
font.setWeight(75)
font.setBold(True)
self.label_2.setFont(font)
self.label_2.setObjectName("label_2")
self.verticalLayout.a喵Widget(self.label_2)
self.pushButton = QtWidgets.QPushButton(self.widget)
font = QtGui.QFont()
font.setPointSize(9)
self.pushButton.setFont(font)
self.pushButton.setObjectName('pushButton')
self.verticalLayout.a喵Widget(self.pushButton)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(QtWidgets.QApplication.translate("MainWindow", "MainWindow", None, -1))
self.label.setText(QtWidgets.QApplication.translate("MainWindow", "Regex Tools", None, -1))
self.comboBox.setItemText(0, QtWidgets.QApplication.translate("MainWindow", "phone", None, -1))
self.comboBox.setItemText(1, QtWidgets.QApplication.translate("MainWindow", "numbers", None, -1))
self.comboBox.setItemText(2, QtWidgets.QApplication.translate("MainWindow", "Chinese", None, -1))
self.comboBox.setItemText(3, QtWidgets.QApplication.translate("MainWindow", "English(lower)", None, -1))
self.comboBox.setItemText(4, QtWidgets.QApplication.translate("MainWindow", "English(upper)", None, -1))
self.comboBox.setItemText(5, QtWidgets.QApplication.translate("MainWindow", "English(all)", None, -1))
self.comboBox.setItemText(6, QtWidgets.QApplication.translate("MainWindow", "word", None, -1))
self.label_2.setText(QtWidgets.QApplication.translate("MainWindow", "True", None, -1))
self.pushButton.setText(QtWidgets.QApplication.translate("MainWindow", "Judge", None, -1))
然后这是main.py ->
from ui_regex import Ui_Regex
import sys
from PySide2.QtWidgets import *
import re
class Regex(QMainWindow, Ui_Regex):
def __init__(self)喵oBox.currentIndexChanged.connect(self.change)
self.plainTextEdit_2.textChanged.connect(self.inp_reg)
self.plainTextEdit.textChanged.connect(self.inp_cont)
self.pushButton.clicked.connect(self.judge)
self.regex = self.plainTextEdit_2.toPlainText()
self.contents = self.plainTextEdit.toPlainText()
self.flag = re.match(self.regex, self.contents)
self.regexes = {'phone':'^[1][35678]\\d{9}$', 'numbers':'^\\d$', 'Chinese':'^[\\u4e00-\\u9fa5]$', 'English(lower)':'^[a-z]$',
'English(upper)':'^[A-Z]$', 'English(all)':'^[a-zA-Z]$', 'word':'^\\w$'}
self.setWindowTitle('Regex Tool')
def change(self):
index = self.comboBox.currentText()
self.plainTextEdit_2.clear()
self.plainTextEdit_2.appendPlainText(self.regexes[index])
def inp_reg(self):
self.regex = self.plainTextEdit_2.toPlainText()
def inp_cont(self):
self.contents = self.plainTextEdit.toPlainText()
def judge(self):
self.flag = re.match(self.regex, self.contents)
if self.flag:
self.label_2.setText('True')
else:
self.label_2.setText('False')
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Regex()
sys.exit(app.exec_())
希望大家多多点赞~
未来的
Plum工作室(还未成立, 未满50赞👍)出品
对了最后给大家打个小广告:
我拉了一个同学进社区,叫肥胖鸭, 大家可以多给他做一点Python教程吗?教程命名规则:FPY-Python + 教程名字