Flutter中如何从字符串提取带引号的文本?
提取转义引号包裹的字符串内容
针对你需要从包含"(HTML转义双引号)的字符串中提取中间内容的需求,以下是两种实用方案:
方法1:字符串分割法
适合仅存在一对"的场景,操作简单直接:
String question = "Vertices of the triangle are "(5,-2),(-1,2)(1,4)""; // 以"为分隔符拆分字符串,取索引为1的部分(即两个转义引号之间的内容) String numbers = question.split(""")[1]; // 可选:修正原字符串中缺失的逗号(将)(替换为),() numbers = numbers.replace(")(", "),("); System.out.println(numbers); // 输出:(5,-2),(-1,2),(1,4)
方法2:正则表达式匹配法
如果字符串中可能存在多对",或者需要更灵活的匹配逻辑,推荐用正则:
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String question = "Vertices of the triangle are "(5,-2),(-1,2)(1,4)""; // 正则规则:匹配"开头、"结尾的内容,中间非贪婪匹配任意字符 Pattern pattern = Pattern.compile(""(.*?)""); Matcher matcher = pattern.matcher(question); // 匹配到第一个符合条件的内容 if (matcher.find()) { String numbers = matcher.group(1); // 可选:修正逗号缺失 numbers = numbers.replace(")(", "),("); System.out.println(numbers); // 输出:(5,-2),(-1,2),(1,4) } // 如果有多对引号,可循环提取所有内容 // while (matcher.find()) { // System.out.println(matcher.group(1)); // } } }
内容的提问来源于stack exchange,提问作者Syed Irfan Hussaini
相关产品推荐
相关产品推荐

