簡體   English   中英

QRegularExpression計數出現次數

[英]QRegularExpression count number of occurrences

我有一個QString,我想算一下QString中的2件事:

a)特殊字符數

b)連續2個字符的數量

對於第一個,我嘗試了這個:

QRegularExpression var1("[$&+,:;=?@#|'<>.^*()%!-]");
myString.count(var1);

我不知道該如何也計算反斜杠和斜杠字符,我不確定這是否是檢查所有特殊字符的方法。

對於第二個,我嘗試了這個:

QRegularExpression var2("([a-z\\d])\\1\\1");
myString.count(var2);

還有這個:

QRegularExpression var2("([a-zA-Z0-9\\d])\\1\\1");
myString.count(var2);

這根本不起作用。

請指教,我需要連續字符數和QString中的特殊字符數。

對於第一個。 請嘗試這個。

  QRegularExpression var1("[$&+,:;=?@#|'<>.^*()%!-/\\\\]");

您可以像其他char一樣僅將斜杠數減1。 要加反斜杠字符,您需要4個反斜杠。 在正則表達式中,您需要轉義反斜杠char以匹配反斜杠char(\\\\)。 在C ++中,您還需要轉義這兩個反斜杠。 因此,您需要4個反斜杠。

對於第二個字符,只需一個\\\\ 1即可匹配連續的2個字符。 \\\\ 1表示第一個匹配組的相同字符,因此您的正則表達式實際上匹配連續的3個字符。

  QRegularExpression var2("([a-z\\d])\\1");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM