首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >字符灵活删除工具有哪些,用python提高效率

字符灵活删除工具有哪些,用python提高效率

原创
作者头像
用户11987704
发布2026-01-09 16:42:15
发布2026-01-09 16:42:15
1720
举报
代码语言:javascript
复制
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QTextEdit, QPushButton, QVBoxLayout, QHBoxLayout, QRadioButton, QButtonGroup
from PyQt5.QtGui import QFont

class KeywordExtractor(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        # 创建文本框
        self.input_edit = QTextEdit(self)  # 输入关键词的文本框
        self.result_edit = QTextEdit(self)  # 显示处理结果的文本框
        self.extract_edit = QTextEdit(self)  # 输入指定字符的文本框

        # 创建单选按钮
        self.radio_before = QRadioButton('字符前部分删除', self)
        self.radio_after = QRadioButton('字符后部分删除', self)
        self.radio_contain = QRadioButton('含字符本身删除', self)
        self.radio_before_contain = QRadioButton('含字符及前删除', self)
        self.radio_after_contain = QRadioButton('含字符及后删除', self)

        # 此处省去样式代码

        # 设置窗口标题和大小
        self.setWindowTitle('字符灵活删除工具 https://www.jinsuitui.com')
        self.resize(1000, 600)
        self.setFixedSize(self.size())

        # 连接按钮的功能
        self.paste_btn.clicked.connect(self.paste_text)
        self.copy_btn.clicked.connect(self.copy_text)
        self.delete_btn.clicked.connect(self.delete_text)

    def paste_text(self):
        clipboard = QApplication.clipboard()
        self.input_edit.setPlainText(clipboard.text())

    def copy_text(self):
        clipboard = QApplication.clipboard()
        clipboard.setText(self.result_edit.toPlainText())

    def delete_text(self):
        text = self.input_edit.toPlainText()
        keyword = self.extract_edit.toPlainText()

        # 逐行处理
        lines = text.splitlines()
        processed_lines = []

        for line in lines:
            if self.radio_before.isChecked():
                # 删除指定字符前的部分(不包含指定字符本身)
                if keyword in line:
                    result = line.split(keyword, 1)[-1]
                    result = keyword + result
                else:
                    result = line
            elif self.radio_contain.isChecked():
                # 删除包含指定字符本身的部分
                result = line.replace(keyword, '') if keyword in line else line
            elif self.radio_after.isChecked():
                # 删除指定字符后的部分(包含指定字符本身)
                if keyword in line:
                    result = line.split(keyword, 1)[0] + keyword
                else:
                    result = line
            elif self.radio_before_contain.isChecked():
                # 删除指定字符前的部分(包括指定字符本身)
                if keyword in line:
                    result = line.split(keyword, 1)[-1]
                else:
                    result = line
            elif self.radio_after_contain.isChecked():
                # 删除指定字符后的部分(包括指定字符本身)
                if keyword in line:
                    result = line.split(keyword, 1)[0]
                else:
                    result = line
            else:
                result = line  # 如果没有选择任何单选按钮,则不做任何处理

            processed_lines.append(result)

        # 将处理后的结果按行显示
        self.result_edit.setPlainText('\n'.join(processed_lines))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = KeywordExtractor()
    ex.show()
    sys.exit(app.exec_())

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档