1
This commit is contained in:
@@ -1450,7 +1450,7 @@ public class JDUtil {
|
|||||||
xbMessage.setTipOriginalMessage(message);
|
xbMessage.setTipOriginalMessage(message);
|
||||||
xbMessage.setFromWxid(wxid);
|
xbMessage.setFromWxid(wxid);
|
||||||
String firstLine = message.split("\n")[0];
|
String firstLine = message.split("\n")[0];
|
||||||
Double price = parsePrice(message);
|
Double price = parsePrice(message.trim());
|
||||||
xbMessage.setFirstLine(firstLine);
|
xbMessage.setFirstLine(firstLine);
|
||||||
xbMessage.setFirstPrice(price);
|
xbMessage.setFirstPrice(price);
|
||||||
xbMessage = xbMessageRepository.save(xbMessage);
|
xbMessage = xbMessageRepository.save(xbMessage);
|
||||||
@@ -2795,15 +2795,14 @@ public class JDUtil {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 优化正则:匹配◉后任意数字(含小数点),直到遇到💰或字符串结束
|
// 正则表达式会忽略换行符,只关注◉和数字的位置关系
|
||||||
// 增加对可能的符号变体的兼容
|
// 即使◉和价格之间有换行也能匹配
|
||||||
Pattern pattern = Pattern.compile("\\u25C9([\\d.]+)\\s*\\uD83D\\uDCB0?");
|
Pattern pattern = Pattern.compile("\\u25C9\\s*([\\d.]+)\\s*\\uD83D\\uDCB0?");
|
||||||
Matcher matcher = pattern.matcher(input);
|
Matcher matcher = pattern.matcher(input);
|
||||||
|
|
||||||
if (matcher.find()) {
|
if (matcher.find()) {
|
||||||
try {
|
try {
|
||||||
String priceStr = matcher.group(1).trim();
|
String priceStr = matcher.group(1).trim();
|
||||||
// 确保是有效的数字格式(至少一个数字,最多一个小数点)
|
|
||||||
if (priceStr.matches("\\d+\\.?\\d*|\\d*\\.\\d+")) {
|
if (priceStr.matches("\\d+\\.?\\d*|\\d*\\.\\d+")) {
|
||||||
return Double.parseDouble(priceStr);
|
return Double.parseDouble(priceStr);
|
||||||
}
|
}
|
||||||
@@ -2812,8 +2811,8 @@ public class JDUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 二次尝试:如果找不到完整符号对,尝试提取◉后面的第一个数字
|
// fallback处理
|
||||||
Pattern fallbackPattern = Pattern.compile("\\u25C9([\\d.]+)");
|
Pattern fallbackPattern = Pattern.compile("\\u25C9\\s*([\\d.]+)");
|
||||||
Matcher fallbackMatcher = fallbackPattern.matcher(input);
|
Matcher fallbackMatcher = fallbackPattern.matcher(input);
|
||||||
if (fallbackMatcher.find()) {
|
if (fallbackMatcher.find()) {
|
||||||
try {
|
try {
|
||||||
@@ -2828,4 +2827,5 @@ public class JDUtil {
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user