如何在flutter_mobile_vision中使用正则表达式过滤指定格式数字
问题排查
- 核心错误为正则表达式存在语法问题:第三个数字段的写法缺失左大括号,你写的是
\d1,6},正确格式应为\d{1,6},语法错误直接导致无法匹配到目标格式内容。 - 现有逻辑存在缺陷:仅判断字符串中是否存在匹配内容,就直接返回整个OCR识别结果,若识别结果包含其他无关内容,会返回多余字符,不符合过滤需求。
修正后的实现
String datax() { // 修正正则语法错误,如需整串完全匹配可加^$锚定,即r'^\d{1,6}-\d{1,6}-\d{1,6}-\d{1,6}$' RegExp regEx = RegExp(r'\d{1,6}-\d{1,6}-\d{1,6}-\d{1,6}', caseSensitive: false, multiLine: false); String xc = ""; Match? matchedResult = regEx.firstMatch(_textsOcr[0].value); if (matchedResult != null) { // 提取匹配到的目标子串 xc = matchedResult.group(0)!; } return xc; }
内容的提问来源于stack exchange,提问作者Obot Ernest
相关产品推荐
相关产品推荐

