问题标签 [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 回答
90 浏览

python - 如何在正则表达式中搜索这种模式

这是我想要获取匹配指定字符串的正则表达式的示例文本,正则表达式将限定不匹配条件

1abc.def.ghi(匹配)

abc.111.ghi(匹配)

123.123.123.132.123.123(匹配)

123.123.123.132.123.123.123.123.123.132.123.123.123.123.123.132.123.123(匹配)

123.123.123.132.123。12335(不匹配)

7645 .123.111.887(不匹配)

0 投票
1 回答
193 浏览

qt - 如果它是使用 QRegExp 的逗号,如何删除第一个字符?

我有以下 QRegExpValidator

它应该是一个 Double numbers 验证器,它接受数字,只有一个“e”符号、一个逗号 OR 点和一个 + 或 - 符号,位于字符串的开头或“e”符号之后。它适用于所有情况,除了它允许字符串以逗号或点开头。我尝试使用[^\\.,]和变体,它们确实有效,但在这种情况下,它也允许放置两个 +- 符号。

我怎样才能使它工作?

0 投票
2 回答
983 浏览

regex - 使用 QRegularExpression 的不区分大小写的搜索模式

这个问题是一个扩展的问题: How to replace QRegExp in a string?

在那个问题上,问题就解决了。但现在我需要使用 QRegularExpression 而不是 QRegExp。我应该如何转移 Toby Speight 的答案?

0 投票
1 回答
210 浏览

regex - QRegularExpression 延迟匹配不适用于非常大的字符串

QRegularExpression在 Qt 5.10.1 中使用从由页眉和页脚绑定的文件中提取文本部分。例如,考虑以下文本:

然后,我将使用以下正则表达式来捕获一段文本:

这里没有什么不寻常的。问题是如果文本部分非常大(超过 100k 行),那么正则表达式将停止产生匹配。我在不同的文本编辑器(TextPad)中尝试了搜索,它工作正常,所以我怀疑这是由于它使用的 PCRE2 库中的某种 MAX_SIZE 常量QRegularExpression或更可能是由于它使用的。但我不知道去哪里看,或者这是否可以调整?或者也许这被认为是一个错误?

下面是一些可用于演示我的问题的代码。对我来说,它爆炸了 100,000 行(10,000,000 字节)。

0 投票
0 回答
152 浏览

c++ - QRegularExpression 如何使用多行模式?

Qt 5.12.0

我正在使用从 QSyntaxHighlighter 派生的类来突出显示 QTextEdit 小部件中的文本。我已经覆盖了该highlightBlock(const QString & text)函数,并且正在尝试使用 QRegularExpression 制作多行正则表达式模式。

这匹配任何以字母开头和结尾的字符串a,但仅在一行中。我尝试了几种变体,包括:

...

...

这些都不起作用。多行正则表达式是否刚刚在 Qt 中被破坏,或者我做错了什么?

0 投票
1 回答
120 浏览

c++ - 使用 QRegularExpression 提取双引号内的字符串

我有一个如下字符串:

我想使用 QRegularExpression 从这个字符串中提取所有 url。我已经尝试过:

但这不起作用。

0 投票
0 回答
26 浏览

c++ - QString split 也在 '.' 处分裂。

我的计算器应用程序中有一个 textField,最后我将整个输入拆分为单独的数字和运算符。为了获得数字,我正在使用这个:

问题是它也在“。”处分裂。由于某些原因。我对正则表达式不太熟悉,所以问题可能出在我的正则表达式中。那么我应该怎么做才能只在“+”、“-”、“*”和“/”处拆分?

示例文本:4+2/3.5

应该得到 [4, 2, 3.5]。当然,这些值将在 QString 中。

0 投票
0 回答
43 浏览

c++ - 卡在 QRegular 表达式中

我需要构建一个正则表达式来匹配以下字符串集:

测试,测试,测试

我有以下测试场景:

test3 失败,我明白原因,但我该如何解决呢?我需要从匹配中跳过'e'字符......

0 投票
1 回答
240 浏览

c++ - 如何将嵌套模式与 QRegularExpression 匹配?

我正在尝试使用 QRegularExpression 获取以“#”开头的所有单行注释。我使用 globalMatch and and 一个迭代器,但它无法找到“嵌套评论”。

我使用这个正则表达式:#[^\n]*

并使用以下代码:

它只找到从“#A test”开始的全局注释,而不是第二个。有没有办法做到这一点 ?

谢谢 !

0 投票
1 回答
188 浏览

regex - Perl 正则表达式 | 如何在非捕获组(?:)中使用负前瞻(?!)

我想在 Perl Regex 的非捕获组中使用负前瞻。到目前为止,我已经创建了一个不允许 3 个“字符对”进入字符串的表达式

如果您看到该组之前有一个否定的前瞻,我想将此表达式添加到一个组中。为了理解这一点,我将向您展示另一个仅不允许一对或字符的示例。

如果您在https://regex101.com/中测试这 2 个表达式,您将看到CASE 2上的字符串“MySampleString”我有 2 个匹配信息。(全场比赛和第 1 组比赛)。现在,如果您运行第一个模式(CASE 1),您将在匹配信息中仅看到完全匹配。

在我尝试在 CASE 1 中添加分组匹配选项时,将括号括起来:

但现在里面的表达式不起作用:/

我想找到一种 ^(?!(?:\w*(.)\1){3}).+$ 可以工作的方法(使用完全匹配和 Group1 匹配)。我必须将此选项添加到我正在处理的很长的正则表达式中,它不能作为一个完整的匹配组工作。为了使其更简洁,我将向您展示一个示例,即字符串不能有“一对字符”,同时不能包含任何字母的 4 次重复。

这两个表达式 (?=^(?:(.)(?!\1)) $) 和 (?=^(?:(.)(?!(?:. ?\1){4}))* $) 合并,因为两者都有分组匹配。