Java中如何使用正则表达式提取字符串中间的指定内容
实现方案
正则规则说明
针对给定字符串[{"Tpid":"23, 45"}]的固定结构,使用正则"Tpid":"([^"]+)"即可定位目标内容:
- 固定匹配前缀
"Tpid":",精准定位到Tpid字段的值起始位置 - 捕获组
([^"]+)匹配所有非双引号字符,直到遇到值末尾的闭合双引号,拿到Tpid对应的原始值 - 提取到原始值后,移除其中的空白字符即可得到目标结果
23,45
Java实现代码
import java.util.regex.Matcher; import java.util.regex.Pattern; public class TpidExtract { public static void main(String[] args) { String source = "[{\"Tpid\":\"23, 45\"}]"; // 编译正则规则 Pattern pattern = Pattern.compile("\"Tpid\":\"([^\"]+)\""); Matcher matcher = pattern.matcher(source); if (matcher.find()) { // 提取捕获组内容,清除值内空白得到最终结果 String result = matcher.group(1).replaceAll("\\s", ""); System.out.println(result); } } }
运行上述代码会直接输出23,45。
补充说明
- 如果待处理的是标准JSON格式字符串,优先使用JSON解析库(Gson、Jackson等)做字段提取,容错性远高于正则,正则仅适合固定格式的简单字符串快速提取场景
- 如果Tpid字段和冒号之间可能存在空格、或者值内存在转义双引号,需要对应调整正则匹配规则适配场景
- 若不需要移除值内的空格,直接返回
matcher.group(1)即可得到原始值23, 45
内容的提问来源于stack exchange,提问作者Tiwari Richa
相关产品推荐
相关产品推荐

