我能够标记字符串的一部分,但不能标记整个字符串。我在编写正则表达式以标记整个字符串方面需要帮助。我要标记的字符串是123 + 56 * num1。
下面的正则表达式是我已经尝试过的。我可以标记123 + 56 *,但不能标记123 + 56 * num1。如果表达式也可以匹配变量名,那就太好了。
String variableRegex = "[a-zA-Z_$0-9][a-zA-Z_$0-9]*"; //for variable names
String operatorRegex = "\\+|-|\\/|\\*|\\*|="; // for operators
String multiply = "\\*";
String numberRegex = "\\d*";
String definingVariables = String.format("(%s)(%s)(%s|%s)(%s)", variableRegex, operatorRegex, variableRegex, numberRegex, multiply);
String justVariable = String.format("%s", variableRegex);
String allRegex = String.format("%s|(%s)", definingVariables, justVariable);
结果应为:
123
+
56
*
num 1
当前结果是: 123 + 56 * num1