gpt4 book ai didi

java - 在\b's 但不在\b's 之间拆分字符串

转载 作者:搜寻专家 更新时间:2023-11-01 03:36:11 25 4
gpt4 key购买 nike

如何将字符串拆分为单词,但保留某些短语/术语不变?现在,我有 String[] strarr = str.split("\\b");,但我想修改 regex 参数以完成上述内容。 解决方案不必包含正则表达式

例如,如果 str 等于 “The city of San Francisco is truly beautiful!” 并且术语是 “San Francisco”,如何拆分 str 以便生成的 String[] 数组如下所示:["The", "city", "of", "San Francisco", "is", "truly", "beautiful!"]?


在看到@Radiodef 的评论后,我决定我并不真的需要正则表达式本身。如果有人可以帮助我解决这个问题,仍然非常感谢帮助!

最佳答案

我知道发布的答案更好,但由于我很难反对这个,所以我也想分享正则表达式的答案。

因此,通过使用捕获组来实现此目的的一种可能的正则表达式方法是使用此正则表达式:

([A-Z][a-z]*(?:\s?[A-Z][a-z]+)*|[a-z!]+)

Working demo

比赛信息

MATCH 1
1. [0-3] `The`
MATCH 2
1. [4-8] `city`
MATCH 3
1. [9-11] `of`
MATCH 4
1. [12-25] `San Francisco`
MATCH 5
1. [26-28] `is`
MATCH 6
1. [29-34] `truly`
MATCH 7
1. [35-44] `beautiful!`

Java代码

String line = "The city of San Francisco is truly beautiful!";
Pattern pattern = Pattern.compile("([A-Z][a-z]*(?:\\s?[A-Z][a-z]+)*|[a-z!]+)");
Matcher matcher = pattern.matcher(line);

while (matcher.find()) {
System.out.println("Result: " + matcher.group(1));
}

关于java - 在\b's 但不在\b's 之间拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30825243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com