gpt4 book ai didi

Java 查找和替换字符串的最佳方式?

转载 作者:IT老高 更新时间:2023-10-28 21:07:00 26 4
gpt4 key购买 nike

我正在寻找在 Java 中查找和替换字符串的最佳方法。

这是一句话:“我叫米兰,人们都知道我是米兰瓦西奇”。

我想用 Milan Vasic 替换字符串 Milan,但在我已经有 Milan Vasic 的地方,不应该这样。

搜索/替换后的结果应该是:“我的名字是 Milan Vasic,人们都知道我是 Milan Vasic”。

我尝试使用 indexOf() 和 Pattern/Matcher 组合,但我的结果都看起来不优雅,有人有优雅的解决方案吗?

干杯!

最佳答案

好吧,您可以使用 regular expression查找“Milan”后面没有“Vasic”的情况:

Milan(?! Vasic)

并将其替换为全名:

String.replaceAll("Milan(?! Vasic)", "Milan Vasic")

(?!...) 部分是 negative lookahead这确保了括号中的部分不会跟随任何匹配项。它不消耗匹配本身的任何字符。

或者,您可以简单地在名字之后插入(嗯,技术上替换零宽度匹配)姓氏,除非它后面已经跟了姓氏。这看起来很相似,但使用了 positive lookbehind还有:

(?<=Milan)(?! Vasic)

您可以将其替换为 "Vasic"(注意字符串开头的空格):

String.replaceAll("(?<=Milan)(?! Vasic)", " Vasic")

你可以试试这些东西here例如。

关于Java 查找和替换字符串的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2049528/

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