惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
The Last Watchdog
The Last Watchdog
Cyberwarzone
Cyberwarzone
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
L
Lohrmann on Cybersecurity
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
The Cloudflare Blog
V
V2EX
博客园_首页
博客园 - 聂微东
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
G
GRAHAM CLULEY
T
Tenable Blog
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
L
LINUX DO - 最新话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
SecWiki News
SecWiki News
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
T
Troy Hunt's Blog
博客园 - 【当耐特】
Forbes - Security
Forbes - Security
H
Hacker News: Front Page
A
About on SuperTechFans
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
D
DataBreaches.Net
P
Privacy & Cybersecurity Law Blog
Schneier on Security
Schneier on Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
D
Docker
P
Proofpoint News Feed

博客园 - 吾非无心

MSB4019 找不到导入的项目“C:\Users\...\AppData\Local\QtMsBuild\vs-debugtools\qt_import.props” - 吾非无心 - 博客园 类/结构最后一个成员为类(string)时可能会出现“堆损坏”(HEAP CORRUPTION DETECTED)错误 GCC在C语言中内嵌汇编 asm __volatile__ double转int QJson 存储(u)longlong有问题 QT QPixmap QImage内存泄漏 QMetaObject::connectSlotsByName: No matching signal for QT数据库连接管理类 QT多重继承带来的问题及解决办法,记录备查 QT6 源码编译Win32 x86 vc++高精度计时sleep stack smashing detected 莫名其妙的错误 strdump的问题 再加一个realloc的问题 linux下简单封装读写锁 codeblocks下libacl配置 centos8 安装、配置redis6 pyftpdlib中文乱码的解决之道 CentOS8让uwsgi开机自动启动django(无需登录,无需手动) libevent学习一
QT删除python中的单行注释
吾非无心 · 2023-11-05 · via 博客园 - 吾非无心

python中的#号可能存在于字符串中:

print("'asd#f'00#0" , '#1“23')  #这里才开始注释

没想到用什么正则来删除python中的单行注释

所以解决方案为:

QString removeLineComment(QString sLine)
{
    qDebug() << "removeLineComment:" << sLine;
    QString sRes;
    int nSharpPos = sLine.indexOf('#');
    if (nSharpPos < 0)
        return sLine;
    if (nSharpPos == 0) {
        return "";
    }
    if (sLine.indexOf('\'') < 0 && sLine.indexOf('\"') < 0) {//该行无引号
        sRes = sLine.left(nSharpPos);
        return sRes;
    }

    struct _s_e_ {
        int start;
        int end;
    };
    QList<_s_e_> _list;
    QRegularExpression regex_str("(['\"]{1}).*?\\1");
    auto matches_str = regex_str.globalMatch(sLine);
    if (matches_str.isValid()) {
        while (matches_str.hasNext()) {
            auto m=matches_str.next();
            if (m.hasMatch()) {
                _s_e_ se;
                se.start = m.capturedStart();
                se.end = m.capturedEnd();
                _list << se;                
            }
        }
    }

    sRes = sLine;
    while (nSharpPos>0) {
        bool bInStr = false;
        for (auto se : _list) {
            bInStr = nSharpPos > se.start&&nSharpPos < se.end;
            if (bInStr)
                break;
        }
        if (!bInStr) {
            sRes = sLine.left(nSharpPos);
            break;
        }
        nSharpPos = sLine.indexOf('#', nSharpPos+1);
    }


    return sRes;
}

View Code