• QtQt使用QRegExp实现正则表达式处理(Qt5.14.2+win10)


    相关资料:

    实例代码:

    .pro

     1 QT       += core gui
     2 
     3 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
     4 
     5 CONFIG += c++11
     6 
     7 # The following define makes your compiler emit warnings if you use
     8 # any Qt feature that has been marked deprecated (the exact warnings
     9 # depend on your compiler). Please consult the documentation of the
    10 # deprecated API in order to know how to port your code away from it.
    11 DEFINES += QT_DEPRECATED_WARNINGS
    12 
    13 # You can also make your code fail to compile if it uses deprecated APIs.
    14 # In order to do so, uncomment the following line.
    15 # You can also select to disable deprecated APIs only up to a certain version of Qt.
    16 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
    17 
    18 SOURCES += \
    19     main.cpp \
    20     mainwindow.cpp
    21 
    22 HEADERS += \
    23     mainwindow.h
    24 
    25 FORMS += \
    26     mainwindow.ui
    27 
    28 # Default rules for deployment.
    29 qnx: target.path = /tmp/$${TARGET}/bin
    30 else: unix:!android: target.path = /opt/$${TARGET}/bin
    31 !isEmpty(target.path): INSTALLS += target
    View Code

    main.cpp

     1 #include "mainwindow.h"
     2 
     3 #include <QApplication>
     4 
     5 int main(int argc, char *argv[])
     6 {
     7     QApplication a(argc, argv);
     8     MainWindow w;
     9     w.show();
    10     return a.exec();
    11 }
    View Code

    mainwindow.h

     1 #ifndef MAINWINDOW_H
     2 #define MAINWINDOW_H
     3 
     4 #include <QMainWindow>
     5 
     6 QT_BEGIN_NAMESPACE
     7 namespace Ui { class MainWindow; }
     8 QT_END_NAMESPACE
     9 
    10 class MainWindow : public QMainWindow
    11 {
    12     Q_OBJECT
    13 
    14 public:
    15     MainWindow(QWidget *parent = nullptr);
    16     ~MainWindow();
    17 
    18 private slots:
    19     void on_pushButton_clicked();
    20 
    21 private:
    22     Ui::MainWindow *ui;
    23 };
    24 #endif // MAINWINDOW_H
    View Code

    mainwindow.cpp

     1 #include "mainwindow.h"
     2 #include "ui_mainwindow.h"
     3 #include <QDebug>
     4 #include <QTextDocument>
     5 #include <QTextBlock>
     6 
     7 MainWindow::MainWindow(QWidget *parent)
     8     : QMainWindow(parent)
     9     , ui(new Ui::MainWindow)
    10 {
    11     ui->setupUi(this);
    12 
    13     setWindowTitle(QStringLiteral("Qt使用QRegExp实现正则表达式处理"));
    14 
    15     //
    16     ui->textEdit->setText("GUID=100\n"
    17                           "AAA=98\n"
    18                           "tttt=99\n"
    19                           "iiii=88\n"
    20                           "sdfsdf=9888\n");
    21     ui->textEdit_2->setText(".*=.*");
    22 }
    23 
    24 MainWindow::~MainWindow()
    25 {
    26     delete ui;
    27 }
    28 
    29 
    30 void MainWindow::on_pushButton_clicked()
    31 {
    32     QRegExp rx(ui->textEdit_2->toPlainText());
    33 
    34     QTextDocument* doc = ui->textEdit->document () ; //文本对象
    35     int cnt=doc->blockCount () ;//回车符是一个 block
    36 
    37     ui->textEdit_3->clear();
    38     for (int i=0; i<cnt; i++)
    39     {
    40         QTextBlock textLine = doc->findBlockByNumber(i) ; // 文本中的一段
    41         QString str = textLine.text();
    42         bool match = rx.exactMatch(str);
    43         if (match)
    44           ui->textEdit_3->append(str);
    45     }
    46 }
    View Code

    mainwindow.ui

      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <ui version="4.0">
      3  <class>MainWindow</class>
      4  <widget class="QMainWindow" name="MainWindow">
      5   <property name="geometry">
      6    <rect>
      7     <x>0</x>
      8     <y>0</y>
      9     <width>629</width>
     10     <height>488</height>
     11    </rect>
     12   </property>
     13   <property name="windowTitle">
     14    <string>MainWindow</string>
     15   </property>
     16   <widget class="QWidget" name="centralwidget">
     17    <widget class="QPushButton" name="pushButton">
     18     <property name="geometry">
     19      <rect>
     20       <x>510</x>
     21       <y>260</y>
     22       <width>81</width>
     23       <height>71</height>
     24      </rect>
     25     </property>
     26     <property name="text">
     27      <string>PushButton</string>
     28     </property>
     29    </widget>
     30    <widget class="QLabel" name="label">
     31     <property name="geometry">
     32      <rect>
     33       <x>10</x>
     34       <y>0</y>
     35       <width>54</width>
     36       <height>12</height>
     37      </rect>
     38     </property>
     39     <property name="text">
     40      <string>原始数据:</string>
     41     </property>
     42    </widget>
     43    <widget class="QLabel" name="label_2">
     44     <property name="geometry">
     45      <rect>
     46       <x>10</x>
     47       <y>240</y>
     48       <width>81</width>
     49       <height>16</height>
     50      </rect>
     51     </property>
     52     <property name="text">
     53      <string>正则表达式:</string>
     54     </property>
     55    </widget>
     56    <widget class="QTextEdit" name="textEdit">
     57     <property name="geometry">
     58      <rect>
     59       <x>10</x>
     60       <y>20</y>
     61       <width>481</width>
     62       <height>211</height>
     63      </rect>
     64     </property>
     65     <property name="readOnly">
     66      <bool>false</bool>
     67     </property>
     68     <property name="placeholderText">
     69      <string/>
     70     </property>
     71    </widget>
     72    <widget class="QTextEdit" name="textEdit_2">
     73     <property name="geometry">
     74      <rect>
     75       <x>10</x>
     76       <y>260</y>
     77       <width>481</width>
     78       <height>81</height>
     79      </rect>
     80     </property>
     81    </widget>
     82    <widget class="QLabel" name="label_3">
     83     <property name="geometry">
     84      <rect>
     85       <x>10</x>
     86       <y>340</y>
     87       <width>54</width>
     88       <height>12</height>
     89      </rect>
     90     </property>
     91     <property name="text">
     92      <string>结果:</string>
     93     </property>
     94    </widget>
     95    <widget class="QTextEdit" name="textEdit_3">
     96     <property name="geometry">
     97      <rect>
     98       <x>10</x>
     99       <y>360</y>
    100       <width>481</width>
    101       <height>111</height>
    102      </rect>
    103     </property>
    104    </widget>
    105   </widget>
    106  </widget>
    107  <resources/>
    108  <connections/>
    109 </ui>
    View Code
  • 相关阅读:
    PHP编程基础学习(一)——数据类型
    6-6 带头结点的链式表操作集(20 分)
    6-5 链式表操作集(20 分)
    6-4 链式表的按序号查找(10 分)
    6-3 求链式表的表长(10 分)
    6-2 顺序表操作集(20 分)
    6-1 单链表逆转(20 分)
    学生成绩管理系统(六):项目总结
    学生成绩管理系统(五):系统的完善与数据库的链接
    学生成绩管理系统(四)
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/15936642.html
Copyright © 2020-2023  润新知