替换字符串的前两个逗号

Jea*_*Jea 1 java regex string

是否有正则表达式可用于仅用另一个字符替换String中的两个第一个逗号?

我需要这个的原因是我正在使用RDF三元组,我需要分别处理主题,谓词和对象.所以我使用String.split()方法将它们分成三个独立的部分.

这是我需要拆分的字符串示例:

[ http://dbpedia.org/resource/Tom_Mathisen,http://www.w3.org/2000/01/rdf-schema#comment,"汤姆·马蒂森(1952年出生8月14日)是挪威的喜剧演员,演员,编剧他经常处理低音,吉他和人声.1976年至1983年,他与Jahn Teigen和Herodes Falsk一起进入了喜剧小组Prima Vera.后来他继续与Herodes Falsk合作,参与许多电视/现场表演和唱片. @en]

例如,我希望这个String看起来像这样,所以我可以使用$分割:

[ http://dbpedia.org/resource/Tom_Mathisen $ http://www.w3.org/2000/01/rdf-schema#comment $"Tom Mathisen(1952年8月14日出生)是挪威喜剧演员,演员,编剧他经常处理低音,吉他和人声.1976年至1983年,他与Jahn Teigen和Herodes Falsk一起进入了喜剧小组Prima Vera.后来他继续与Herodes Falsk合作,参与许多电视/现场表演和唱片. @en]

我以不太优雅的方式做到了:

StringBuilder stringbuilder = new StringBuilder(str);
int commaCounter = 0;
for (int i = 0; i < stringbuilder.length(); i++) {
    if (stringbuilder.charAt(i) == ',') {
        stringbuilder.setCharAt(i, '$');
        commaCounter++;
        if (commaCounter == 2) {
            break;
        }
    }
}
str = stringbuilder.toString();
Run Code Online (Sandbox Code Playgroud)

vik*_*eve 6

这样的事情比较直接吗?

String s = input.replaceFirst(",", "x").replaceFirst(",", "x");
Run Code Online (Sandbox Code Playgroud)

  • 实际上,它是一个正则表达式,但由于`,`不是一个特殊的字符,我们逃脱看起来像普通的字符串替换:) (2认同)