问题标签 [qregularexpression]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
441 浏览

c++ - 使用 QRegularExpression 将嵌套捕获组与量词匹配

我正在尝试使用 QRegularExpression 获取不同捕获组中 xml 标记的所有属性。我使用与标签匹配的正则表达式,并设法获取包含属性值的捕获组,但使用量词,我只得到最后一个。

我使用这个正则表达式:

我想用这个文本得到“a”和“b”:

这是代码:

和输出:

是否可以使用量词获取多个捕获组,*或者让我QRegularExpressionMatchIterator在字符串文字上使用特定的正则表达式进行迭代?

0 投票
0 回答
72 浏览

c++ - QTextEdit 没有突出显示简单的两行。我正在为 Qt 5.13 MinGw x64 使用 QRegularExpression

我有最简单的最小工作示例来突出显示两行。要突出显示的两行如下所示。这两行是 QTextEdit 的唯一内容。


开始

结尾


使用 QSyntaxHighlighter 和 QTextEdit,我无法使用 QRegularExpression 突出显示这两行。工作代码如下所示。使用 QtCreater 编译时,它给出零警告并且运行良好。我正在使用 Qt5.13 MinGW x64。有趣的一点是,我使用的 RegEx 在https://regex101.com/等在线检查器中运行良好。

最终我想看到两条线应该以红色显示。第一行包含单词“begin”,第二行包含单词“end”。*请帮忙。

mySyntaxHighlighter.h

mySyntaxHighligher.cpp

主窗口.cpp

主窗口.h

0 投票
1 回答
149 浏览

c++ - 无法突出显示 RegEx 捕获行的背景

我有一个极简的工作 Qt 代码。我想突出显示以“/”开头并以“/ ”结尾的标准多行样式 C++ 注释行。

Qt 项目以零警告编译并且运行良好。但是突出显示仅发生在字符上,而不是整个背景区域。

预期的行为以 png 图像的形式附加。该代码基于带有 MinGw x64 编译器的Qt 文档版本 5.13 。

我还要感谢 stackoverflow 贡献者https://stackoverflow.com/users/6622587/eyllanesc建议我使用两个正则表达式来突出显示。

此代码的输出:

仅突出显示字符

我的预期输出:

我希望突出显示完整的背景

完整的工作代码清单如下。请建议和帮助。提前致谢。

主窗口.h

主窗口.cpp

mySyntaxHighlighter.h

mySyntaxHighlighter.cpp

0 投票
2 回答
110 浏览

regex - 提取匹配特定格式的字符串

给定一个 QString,我想从主字符串输入中提取一个子字符串。

例如,我有一个 QString 读取类似的内容:

我需要使用与正则表达式格式匹配的模板/格式来提取字符串(如果存在该格式的字符串)(\w){8}([-](\w){4}){3}[-](\w){12},如下所示:

它应该返回

如果找到,则为空QString

目前,我可以通过执行以下操作来实现这一点:

但这是乏味且低效的,并且是针对特定要求量身定制的。

是否有一个通用函数使我能够使用正则表达式格式或其他格式提取子字符串?

更新

在@Emma 的回答之后为了清楚起见,我想要例如QString::extract("(\w){8}([-](\w){4}){3}[-](\w){12}")which 返回db41aa6a-c0b8-11e9-bc8a-806e6f6e6963

0 投票
1 回答
124 浏览

qt - QStringList 不通过 QRegularExpression 返回索引

我究竟做错了什么?我想在 QStringList 中找到与给定 QRegularExpression 匹配的字符串索引。

0 投票
1 回答
106 浏览

c++ - 找不到 QRegularExpression 行为的任何解释。它有效,但它不应该

正如问题所暗示的那样,我有一个带有 QRegularExpression 的代码片段,它可以工作。它做了它应该做的事情,没有错误,一切都很好。

为什么我要发布这个问题?好吧,到目前为止我发现的所有内容都暗示我的表达不应该起作用,但是......它确实有效。

我的问题的重点在于\-逃逸sybmol。

我知道它没有定义。在编译期间我得到 warning: unknown escape sequence: '\-'. 而这个警告实际上是意料之中的。

现在考虑以下代码片段。不要太在意表情,它是俄语,但不幸的是我注意到这个表情上有这个奇怪的东西。

我没有发布任何其他内容,因为听起来很奇怪 - 它可以按需要工作。

我实际上想了解原因 - 考虑到我收到警告。

表达式如下。

正如我所说,我得到了想要的行为。在其中带有符号“-”的俄语单词中,该符号实际上是被[а-я\-]+零件吞噬的。如果它不存在 --就不会被吞噬。

我发现的一切都表明它不应该起作用,但确实如此。

更新

在建议的重复正则表达式中不起作用。

我的问题清楚地表明我的正则表达式有效,考虑到我在编译期间收到的警告,我只是无法弄清楚为什么它可以按预期工作。所有提供的代码都按原样使用并正常工作。

更重要的是,这个问题与 std::regex 无关,下面也已经给出了正确的答案,并给出了正确的解释。

该问题可能是重复的,但它肯定不是建议问题的重复。

0 投票
0 回答
15 浏览

regex - 使用 '.*' 的正则表达式 Python 分组

我有一个涉及一些分组的正则表达式,我很难理解为什么最后一个字符使用这个正则表达式单独分组:

正则表达式:([A-Za-z]+).*([A-Za-z]+)
字符串示例:Hello World

我不明白为什么 'd' 单独分组,我知道它与此有关,但在https://www.regex101.com.*上进行测试时无法解决这个问题

如果我把.*表达式的前面只捕获了 l 和 d,那是为什么呢?

任何帮助表示赞赏,谢谢

0 投票
1 回答
120 浏览

c++ - QRegularExpression 查找文件名的数字部分

我有一个 Qstring 中可用的文件的完整路径

我想从中提取数字 12。

我尝试过这样的事情

这总是将 myNum 返回为 0。我在这里做错了什么?

0 投票
1 回答
25 浏览

java - 如何在java中的字符串中找到一个长的双数

我正在尝试提取文本文件中每一行中存在的端到端延迟值。我使用正则表达式仅获取每行末尾的数字,但我得到了正则表达式的错误,即:

非法转义字符

此外,我需要打开文件以获取每一行并提取末端延迟值并将其存储在另一个文本文件中(所有提取的末端延迟)。

这是我的代码:

0 投票
2 回答
320 浏览

regex - 提取特定文本块并将其放入新文档中

我正在使用 EmEditor,我看到有一个支持 Regex 语句的“查找并提取到新文档”功能。我正在尝试从 Thunderbird 邮箱文本文件中提取一些特定的文本。邮箱里有客服聊天记录的副本。不幸的是,因为我们使用这个聊天程序的免费版本,它不允许导出数据。电子邮件正文中有很多文本,包括聊天和解码的附件。但在每个聊天的底部是姓名、电子邮件、公司名称等。

它看起来像这样:

我尝试提取姓名、电子邮件、运营商、产品、电话和公司。更糟糕的是,并不是所有人都有陪伴,因为也有私人。此外,电话有时会有 +60 或 (60) 或空格,因为聊天用户可以输入我们想要的内容。我可以手动执行此操作,但它有 6k 个条目。

问题是是否会有一个正则表达式语句来找到它们。然后我可以使用 EmEditor 找到这个块并将结果放入一个新文档中,并进行一些调整,我应该能够制作一个 excel 文件以导入到 CRM 中。

如果这不适用于正则表达式,那么没有人知道这样做的聪明方法,所以我不必复制和粘贴所有这些?