Java 如何在介词之前获得空格?

Java 如何在介词之前获得空格?,java,regex,replaceall,Java,Regex,Replaceall,我有“智慧之词”这个字串 如果我应用这个: replaceAll("([^_])([A-Z])", "$1 $2") 它产生了“智慧的词藻”,但是我要写什么才能在单词“of”之前获得一个空间? 为了实现这一点,你需要首先识别字符串中间的单词。indexOf方法将标识字符串中“of”的起始索引。然后,您可以将这三个单词连接在一起。使用零宽度正向前瞻(?=xxx),结合备选方案列表|,并匹配所有Unicode大写字母\p{Lu},然后用单个空格替换零宽度匹配: “WordsoftheWise”.

我有“智慧之词”这个字串 如果我应用这个:

replaceAll("([^_])([A-Z])", "$1 $2") 

它产生了“智慧的词藻”,但是我要写什么才能在单词“of”之前获得一个空间?

为了实现这一点,你需要首先识别字符串中间的单词。indexOf方法将标识字符串中“of”的起始索引。然后,您可以将这三个单词连接在一起。

使用零宽度正向前瞻
(?=xxx)
,结合备选方案列表
|
,并匹配所有Unicode大写字母
\p{Lu}
,然后用单个空格替换零宽度匹配:

“WordsoftheWise”.replaceAll((?=\\p{Lu}of | the)”,“”)

结果:
“智者之言”

如果您不希望在第一个字母前添加空格,请添加零宽度负向前瞻
(?!xxx)
,以防止匹配文本的开头
^

“WordsoftheWise.replaceAll((?!^)(?=\\p{Lu}of | the)”,“”)


结果:
“智者之言”

最简单的方法是使用:

"WordsofWisdom".replaceAll("(.....)(..)(......)", "$1 $2 $3") 

这确实是一个相当困难的人工智能问题。例如,您希望如何解析行“AloofPeople”?建议的方法会给“很多人”非常感谢!我可以问你是从哪里学会掌握这些东西的吗?@krystal Time and study…你让我很开心,@Andreas!还有我的日子……
“notagoodswer”。replaceAll((…)(…)(…)(…)(…),“$1$2$3”)
给出了
notagoo dAnswer
这没关系,因为
notagoodswer
中没有介词。说真的,你自己的答案并不是一个好答案,也不是更好的答案。你的评论有什么意义?从你自己的回答来看,我认为你显然没有认真对待这次行动。