我想更改以下代码:
x = 0;
dx = (val - (x * x)) / (2.0 * x);
x = x + dx;
diff = val - (x * x);
x = x;
return (x);
进入:
VARIABLE_TO_MONITOR_x = 0;
dx = (val - (VARIABLE_TO_MONITOR_x * VARIABLE_TO_MONITOR_x)) / (2.0 * VARIABLE_TO_MONITOR_x);
VARIABLE_TO_MONITOR_x = VARIABLE_TO_MONITOR_x + dx;
diff = val - (VARIABLE_TO_MONITOR_x * VARIABLE_TO_MONITOR_x);
VARIABLE_TO_MONITOR_x = VARIABLE_TO_MONITOR_x;
return (VARIABLE_TO_MONITOR_x);
目前我正在使用:
strLine.matches("^.*(?<![a-zA-Z])" +variableN[1] + "(?![a-zA-Z]).*$")
但这会返回以下内容:
VARIABLE_TO_MONITOR_x = 0;
dVARIABLE_TO_MONITOR_x = (val - (VARIABLE_TO_MONITOR_x * VARIABLE_TO_MONITOR_x)) / (2.0 * VARIABLE_TO_MONITOR_x);
VARIABLE_TO_MONITOR_x = VARIABLE_TO_MONITOR_x + dVARIABLE_TO_MONITOR_x;
diff = val - (VARIABLE_TO_MONITOR_x * VARIABLE_TO_MONITOR_x);
VARIABLE_TO_MONITOR_x = VARIABLE_TO_MONITOR_x;
return (VARIABLE_TO_MONITOR_x);
我如何调整这个正则表达式以不捕获不是我正在寻找的变量的实例?这捕获变量包含在另一个单词中的实例...
任何帮助将不胜感激..
正则表达式菜鸟..
编辑: 这也是替换的代码..
if (strLine.matches("^.*(?<![a-zA-Z])" + variableN[1] + "(?![a-zA-Z]).*$"))
{
strLine = strLine.replace(variableN[1], VARIABLES + variableN[1]);
}
最佳答案
\b
这是使用“单词边界”的好时机!
strLine.split("\\b" +variableN[1] + "\\b");
将返回一个由您的变量名精确分割的线段数组。 “\b”匹配单词的边缘。
然后,您可以使用新的变量名称将其一次打印出来,将其粘合在一起。或者更好:
strLine.replaceAll("\\b" +variableN[1] + "\\b", "VARIABLE_TO_MONITOR_" + variableN[1]);
将为您完成所有更换!
关于java - 正则表达式问题 - 找到精确的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12152364/