"kaishi ok [VER:1.3a.20211103:] [OPT:PHSW] [MSG:Using machine:Wainlux_L6] [MSG:Mode=STA:SSID=xinjia:Status=Connected:IP=192.168.0.152:MAC=0C-B8-15-33-32-78] ok" 提取字符串中的IP地址
时间: 2024-02-02 21:04:25 浏览: 162
可以使用正则表达式来提取该字符串中的IP地址。示例代码如下:
```cpp
#include <QRegularExpression>
#include <QDebug>
QString str = "kaishi ok [VER:1.3a.20211103:] [OPT:PHSW] [MSG:Using machine:Wainlux_L6] [MSG:Mode=STA:SSID=xinjia:Status=Connected:IP=192.168.0.152:MAC=0C-B8-15-33-32-78] ok";
QRegularExpression re("\\bIP=(\\d{1,3}\\.){3}\\d{1,3}\\b");
QRegularExpressionMatch match = re.match(str);
if (match.hasMatch())
{
QString ip = match.captured(0);
qDebug() << "IP address: " << ip.mid(3); // 去掉前缀"IP="
}
else
{
qDebug() << "No IP address found!";
}
```
输出结果为:
```
IP address: 192.168.0.152
```
解释一下正则表达式的含义:
- `\\b`: 匹配单词边界,确保IP只匹配在单词中出现的部分,避免误匹配。
- `IP=`: 匹配"IP="字符串。
- `(\\d{1,3}\\.){3}`: 匹配3个数字和一个"."组成的子串,共重复3次,即匹配形如"192.168.0."的部分。
- `\\d{1,3}`: 匹配一个1至3位的数字,即匹配IP地址中最后一段数字。
- `\\b`: 匹配单词边界,确保IP只匹配在单词中出现的部分,避免误匹配。
阅读全文