我试图取代\\u0061
和\u0061
到%u0061
与QRegExp,为什么不是下面的正则表达式工作?
所以我这样做,
QString a = "\\u0061";
qDebug() << a.replace(QRegExp("\\?\\u"), "%u");
由于斜线可以一次或两次出现,所以我用一个?
到represen的第一个斜杠,但它不起作用,它有什么问题?
编辑
感谢Denomales,它应该是\\\\u
表示\\u
,和我使用\\\\+u
现在。
我试图取代\\u0061
和\u0061
到%u0061
与QRegExp,为什么不是下面的正则表达式工作?
所以我这样做,
QString a = "\\u0061";
qDebug() << a.replace(QRegExp("\\?\\u"), "%u");
由于斜线可以一次或两次出现,所以我用一个?
到represen的第一个斜杠,但它不起作用,它有什么问题?
编辑
感谢Denomales,它应该是\\\\u
表示\\u
,和我使用\\\\+u
现在。
每QT qregex documentation,看到人物和缩写一节人物套:
注:C++编译器可以反斜杠字符串。要在一个正则表达式一个
\
,输入两次,即\\
。要匹配反斜杠字符本身,请输入四次,即\\\\
。
关怀试试这个:
[\\\\]{1,2}(u)
我已经进入4个反斜杠所以各种语言层可以正确地转义反斜线。然后将其嵌套在方括号内,并要求它出现1到2次。基本上这应该在字母u
之前找到单反斜杠和双反斜杠。你可以用%u
来代替,就像你的例子。
在我的例子u
字符被捕获,应返回1组要在更换后使用。
+1,但请勿在直接键入文字时使用文字图像。如果你这样做,以防止反斜杠被吃掉,请注意,你可以在块引用内使用代码格式(正如我在我的编辑中演示的那样)。 –
我这样做是为了表明文本不是由我编辑或创建的。但是,谢谢你的提示,我会为未来记住这一点。 –
我不太确定使用什么牌子的正则表达式QT4的,但一些热门品牌的正则表达式的需要四个反斜杠来代表一个反斜杠,除非你能以某种方式表明原始字符串。 –
如果使用QRegExp(“\\ {1,2} u”)'会发生什么? – lurker
@mbratch没有运气,还是'\ u0061' – daisy