例如,
将此视为string
a.prd_id IN
( SELECT prd_id FROM prd)
我需要将SELECT
之后的文字替换为prd_id
到期间,并且不想更改prd_id
之后的"a.prd_id"
}}
示例输出:
a.prd_id IN
( SELECT period FROM prd)
在prd_id
关键字之后'Select'
所在的位置,我必须将其替换为'period'
答案 0 :(得分:4)
您可以使用积极的外观来实现这一目标。
(?i)(?<=SELECT\s)\s*prd_id\b
答案 1 :(得分:1)
你需要积极的观察:
String s="a.prd_id IN\n" +
"( SELECT prd_id FROM prd)";
System.out.println("Replaced => " +
s.replaceAll("(?i)(?<=\\bSELECT)(\\s+)prd_id\\b", "$1period"));
<强>输出:强>
Replaced => a.prd_id IN
( SELECT period FROM prd)
答案 2 :(得分:0)
试试这个,
String inputString = "a.prd_id IN (SELECT prd_id FROM prd)";
String constantSelect = "SELECT";
String constantFrom = "FROM";
String tmpString = "", resultString = "";
int startIndex = inputString.indexOf(constantSelect);
int endIndex = inputString.indexOf(constantFrom);
tmpString = inputString.subString((startIndex + constantSelect.length), endIndex).trim;
resultString = inputString.replace(tmpString, "Your new string");
答案 3 :(得分:0)
a.substring(a.indexOf(“(”)+ 1,a.indexOf(“)”))。replace(“prd_id”,“?”)其中a是你的字符串和'?'将是你被替换的字符串