You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java String.split()分割含无空格<>标签的字符串并保留括号

解决方案

可用正则表达式

仅需用以下由零宽断言组成的正则作为split参数即可实现需求,适配所有支持环视断言的编程语言:

// JavaScript 写法
const splitRegex = /(?=<\S+?>)|(?<=<\S+?>)/
// Java 等需要转义反斜杠的语言写法
String splitRegex = "(?=<\\S+?>)|(?<=<\\S+?>)";

使用示例

以JavaScript为例:

// 尖括号内无空格的输入
console.log("This and <those> are.".split(splitRegex));
// 输出:["This and ", "<those>", " are."]

// 尖括号内有空格的输入
console.log("This and <hey there> are.".split(splitRegex));
// 输出:["This and <hey there> are."]

逻辑说明

该正则不会匹配任何实际字符,仅定位需要分割的边界位置:

  • (?=<\S+?>):正向肯定预查,匹配<左侧的位置,要求该<到后续最近的>之间全为非空白字符(无空格)
  • (?<=<\S+?>):反向肯定预查,匹配>右侧的位置,要求该>和前面对应的<之间全为非空白字符
  • 两个断言用|组合后,分割时就会把内部无空格的<>标签完整独立为单独元素,不符合条件的<>不会触发分割,保持原字符串结构。

内容的提问来源于stack exchange,提问作者ProfessorCool

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 06:54:04