我正在做作业,正在使用多项式表达式,我想检查例如-3x^2
的字符串是否与指定的格式匹配。
我尝试使用方法string.matches()
。我的问题是我希望我的字符串以+
或-
开头,后跟一组数字,然后是字符^
,然后是x
,然后再是+
或-
和另一组数字。
我写了这样的函数
if ( string.matches("[+-]?(\\d+)x^[+-]?(\\d+)") )
return true;
else
return false;
但是我不确定为什么对于示例-3x^2
它返回false。正则表达式中有一些错误吗?还是我需要先编译正则表达式?
答案 0 :(得分:0)
您需要取消^,否则,它将查找行的开头。
将其更改为\^
会告诉它寻找^
字符。
[+-]?(\d+)x\^[+-]?(\d+)
答案 1 :(得分:0)
在正则表达式中,^
具有特殊含义:start of the line
。
如果您确实希望在正则表达式中使用^
字符,则需要使用\
对其进行转义。