diff --git a/KelvinDashboardService/DapChainHistoryHandler.cpp b/KelvinDashboardService/DapChainHistoryHandler.cpp
index 1ece274f06d7258c2d187f1f44562cdd1d245c49..a9adbfbeeb1600ba26f1c8df1e80a1c1915b1745 100644
--- a/KelvinDashboardService/DapChainHistoryHandler.cpp
+++ b/KelvinDashboardService/DapChainHistoryHandler.cpp
@@ -32,8 +32,16 @@ void DapChainHistoryHandler::onRequestNewHistory(const QMap<QString, QVariant>&
         if(!result.isEmpty())
         {
             //  TODO: error with "\r\n"
-            QRegExp rx("(\\w{3}\\s\\w{3}\\s\\d+\\s\\d{1,2}:\\d{2}:\\d{2}\\s\\d{4})\\r\\n"
-                        "\\s(\\w+)\\s(\\d+)\\s(\\w+)\\s\\w+\\s+(\\w+)");
+            QString reg_str;
+#ifdef Q_OS_LINUX
+            reg_str = "(\\w{3}\\s\\w{3}\\s\\d+\\s\\d{1,2}:\\d{2}:\\d{2}\\s\\d{4})\\n"
+                      "\\s(\\w+)\\s(\\d+)\\s(\\w+)\\s\\w+\\s+(\\w+)";
+#elif Q_OS_WIN
+            reg_str = "(\\w{3}\\s\\w{3}\\s\\d+\\s\\d{1,2}:\\d{2}:\\d{2}\\s\\d{4})\\r\\n"
+                                    "\\s(\\w+)\\s(\\d+)\\s(\\w+)\\s\\w+\\s+(\\w+)";
+#endif
+
+            QRegExp rx(reg_str);
 
             int pos = 0;
             while ((pos = rx.indexIn(result, pos)) != -1)