C++ Qt C++;QRegExp解析字符串
我有字符串C++ Qt C++;QRegExp解析字符串,c++,regex,qt,C++,Regex,Qt,我有字符串str。我想得到两个字符串(“+”和“-”): 我得到的输出: "+asdf" "+zxcv" "-tyupo" "+qwerty" "-yyuu" "+llad" 如果我用*替换\\w,则输出为: "+asdf+zxcv-tyupo+qwerty-yyuu oo+llad dd ff" 您的regexp过多: [\\+\\-](\\w+) \______/\____/ ^ ^--- any amount of alphabetical characte
str
。我想得到两个字符串(“+”和“-”):
我得到的输出:
"+asdf"
"+zxcv"
"-tyupo"
"+qwerty"
"-yyuu"
"+llad"
如果我用*
替换\\w
,则输出为:
"+asdf+zxcv-tyupo+qwerty-yyuu oo+llad dd ff"
您的regexp过多:
[\\+\\-](\\w+)
\______/\____/
^ ^--- any amount of alphabetical characters
^--- '+' or '-' sign
因此,您捕获的是+
/-
符号,以及紧跟其后的任何单词。如果只想捕获+
/-
符号,请使用[+-]
作为正则表达式
编辑:
要获取包含空格的字符串,需要
QRegExp rx("[+-](\\w|\\s)+");
您可以使用以下正则表达式:
[+-]([^-+]+)
看
正则表达式细分:
-要么是[+-]
要么是+
-
-与([^-+]+)
和-
以外的一个或多个符号相匹配的捕获组+
QRegExp rx(“[+-]”)代码>就足够了。是的,我需要检查+或-并获取选项。对不起,我更改了文本。看到输出(我需要)我想它会像qregexprx(“[\\+\\-][a-z]+”)一样代码>是的,为这次考试工作谢谢!。QRegExp rx(“[+-]”(\\w+);输出:“+asdf”“+zxcv”“-tyupo”“+qwerty”“-yyuu”“+llad”。如果您只想+
和-
的话,我需要使用空格,例如“+yyuoo”@Šerg,QRegExp rx([+-])
。如果您需要捕获其他内容,请编辑您的问题以包含所需的输出。此正则表达式效率非常低。与量词交替使用涉及冗余回溯。
QRegExp rx("[+-](\\w|\\s)+");
[+-]([^-+]+)