【发布时间】:2019-02-27 20:33:56
【问题描述】:
我想检查是否有双重运算符。例如:
int 结果 = x+y;
结果为@987654321@,它正在工作。但是:
for(;i<size;i++)
导致operatorCounter = 3,而它应该是operatorCounter = 2。
我的正则表达式String doubleOperatorPattern = "\'.\\++\'";
我想要的运算符:(++) (--) (==) (&&) (||)
public void findOperator(String file){
String operatorPattern = "['+''-''*''/''=''<''>''<=''>=''&''|''^''!''\\-?']";
Pattern pattern = Pattern.compile(operatorPattern);
Matcher matcher = pattern.matcher(file);
while (matcher.find()) {
operatorCounter++;
}
String doubleOperatorPatternString = "['==''++''--''&&''||']";
Pattern doubleOperatorPattern =
Pattern.compile(doubleOperatorPatternString);
Matcher doubleOperatorMatcher = doubleOperatorPattern.matcher(file);
while(doubleOperatorMatcher.find()){
operatorCounter--;
}
}
【问题讨论】:
-
您好,欢迎来到 SO,您能否添加更多关于问题所在的说明。 x+y 的运算符计数是 2 吗?
-
你好,(=) 1 运算符 (+) 1 运算符 2 运算符。我正在寻找所有的运营商。这里没问题。问题双运营商。正在数2次。例如:(==) 等于。但是正则表达式计算了两次。我想数一次。
-
你也想匹配 (+) 和 (++) 对吗?
-
String doubleOperatorPatternString = "['==''++''--''&&''||']";模式 doubleOperatorPattern = Pattern.compile(doubleOperatorPatternString);匹配器 doubleOperatorMatcher = doubleOperatorPattern.matcher(file); while(doubleOperatorMatcher.find()){ operatorCounter--; }
-
你可以编辑问题并格式化代码
标签: java regex double operator-keyword