2013-05-30 5 views
2

У меня есть имя переменной java в строке. Я хочу заменить его буквой x. Как я могу сделать это java и убедиться, что другие слова в строке не заменены?java regex для соответствия переменной

Например, скажем, моя переменная res, и моя строка "res = res + pres + resd + _res Я хочу, чтобы строка стать x = x + pres + resd + _res

ответ

1

Вы можете использовать границу слова, чтобы улавливать только целые слова:..

String s = "res = res + pres + resd + _res"; 
String var = "res"; 
System.out.println(s.replaceAll("\\b" + var + "\\b", "x")); 

выходы x = x + pres + resd + _res

+0

Я действительно хочу любой правильный способ создания переменной (как это разрешено самим языком), которые должны приниматься во внимание. Я добавил _res в своем оригинальном посте, чтобы отразить этот пример. «res = res + pres» также должно работать, хотя пробелов нет – Car981

+0

@ Car981 Код, который я предлагаю, будет работать с '_res' или' res = res + pres'. – assylias

+0

Хорошо, будет ли он работать со знаками доллара, цифрами и в основном тем, что дается здесь: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html#naming? – Car981

0

вы можете использовать \b метасимвол границу слова. (Имейте в виду, вы должны будете использовать doule обратную косую черту, чтобы избежать этого . В Java)

Так что вы можете сделать что-то вроде следующего:

final String searchVar = "res"; 
final String replacement = "x"; 
final String in = "res = res + pres + resd + _res"; 

final String result = in.replaceAll("\\b" + searchVar + "\\b", replacement); 
System.out.println(result); 
// prints "x = x + pres + resd + _res" 
Смежные вопросы