如何替换特定单词后出现的单词?

时间:2013-08-14 11:23:20

标签: java regex replace

例如, 将此视为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'

4 个答案:

答案 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是你的字符串和'?'将是你被替换的字符串