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

Java中匹配‘大写字母+空格+大写字母’模式的正则及字符串分割需求

Java字符串按指定规则分割的解决方案

你需要的分割规则是在「大写字母+空格+大写字母」的空格位置进行分割,正确的正则表达式应该使用正向断言来定位这些空格,避免分割时丢失两边的字母。

正确的正则表达式

(?<=[A-Z])\\s(?=[A-Z])
  • (?<=[A-Z]):正向后顾断言,确保当前空格的前一个字符是大写字母
  • \\s:匹配需要作为分割点的空格
  • (?=[A-Z]):正向前瞻断言,确保当前空格的后一个字符是大写字母

Java代码示例

public class StringSplitExample {
    public static void main(String[] args) {
        String input = "G C / F C / F C / F A / B / F / I";
        // 使用正则分割字符串
        String[] resultParts = input.split("(?<=[A-Z])\\s(?=[A-Z])");
        
        // 输出目标格式的结果
        for (String part : resultParts) {
            System.out.println("<p><strong>" + part + "</strong></p>");
        }
    }
}

输出结果

<p><strong>G</strong></p>
<p><strong>C / F</strong></p>
<p><strong>C / F</strong></p>
<p><strong>C / F</strong></p>
<p><strong>A / B / F / I</strong></p>

为什么你之前的正则不生效

你尝试的(\s([a-zA-Z]\s)+)匹配的是「空格 + (字母+空格)重复多次」的模式,和你需要的分割点完全不匹配,自然无法得到预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:50:51