Qt中的正则表达式

西瓦兰

我正在使用Qt5.6。

我需要在串行端口中处理传入的数据,该数据的格式为“ AD = + 172345AD = + 272345”,依此类推。我将传入的数据附加到,QString并使用Regex提取小数。

如果我写一个正则表达式:

int tmp = StrData.indexOf(QRegularExpression("AD=\+[0-9]{6}"))

它不匹配,即tmp始终为-1。但是我在这里测试了正则表达式,发现它是有效的。可能是什么问题?

威克多·斯特里比尤(WiktorStribiżew)

根据文档,您可以使用内部的regexQString.indexOf来获取字符串中正则表达式的第一个匹配项re索引位置

正则表达式的唯一问题是在Qt中,字符串是C样式的,即它们可以包含转义序列。因此,转义正则表达式特殊字符的反斜杠必须加倍。

使用

QRegularExpression("AD=\\+[0-9]{6}")

或者

QRegularExpression("AD=[+][0-9]{6}")

由于在内部[...],所以+将视为文字字符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章