gpt4 book ai didi

java - 忽略?在 String ReplaceFirst 方法的正则表达式中

转载 作者:行者123 更新时间:2023-12-01 13:57:37 24 4
gpt4 key购买 nike

我有以下程序:

String one = "Hello I am IN (?)";
String two = one.replaceFirst(" IN (?)", " IN ('one','two')");
System.out.println(two);

输出为:

Hello I am IN ('one','two')(?)

我期望的输出是:

Hello I am IN ('one','two')

有什么问题吗?它与第一个参数作为正则表达式的 replaceFirst 方法有关。

最佳答案

replaceFirst使用正则表达式作为其第一个参数。 () 是用于表示捕获组的元字符,? 是非贪婪量词

您可以转义元字符

String two = one.replaceFirst(" IN \\(\\?\\)", " IN ('one','two')");

或者(更好)使用@RJ提到的replace方法

String two = one.replace(" IN (?)", " IN ('one','two')");

关于java - 忽略?在 String ReplaceFirst 方法的正则表达式中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19540630/

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