java - 正则表达式问题 - 找到精确的变量

标签 java regex

我想更改以下代码:

    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/

相关文章:

java - 如何为我的 SWT WPF 程序设置主题?

java - 在 Java 中哈希 json 并进行比较

java - 为每个用户创建单独的表来存储数据或使用单个表

JQuery 更改所有元素文本

带有 ^ 符号的 Java 正则表达式 : find from position

java - 使用哪种设计模式?

java - 数字作为 Android 通知的图标

regex - 需要有关 postgresql regexp_replace 的帮助

mysql - 使用 MySQL 和 Regex 从描述中提取颜色

android 中的 Java 正则表达式