字符串与Java中的正则表达式匹配

时间:2019-03-12 19:23:52

标签: java regex string match

我正在做作业,正在使用多项式表达式,我想检查例如-3x^2的字符串是否与指定的格式匹配。

我尝试使用方法string.matches()。我的问题是我希望我的字符串以+-开头,后跟一组数字,然后是字符^,然后是x,然后再是+-和另一组数字。

我写了这样的函数

if ( string.matches("[+-]?(\\d+)x^[+-]?(\\d+)") )
    return true;
else 
    return false;

但是我不确定为什么对于示例-3x^2它返回false。正则表达式中有一些错误吗?还是我需要先编译正则表达式?

2 个答案:

答案 0 :(得分:0)

您需要取消^,否则,它将查找行的开头。 将其更改为\^会告诉它寻找^字符。

[+-]?(\d+)x\^[+-]?(\d+)

答案 1 :(得分:0)

在正则表达式中,^具有特殊含义:start of the line。 如果您确实希望在正则表达式中使用^字符,则需要使用\对其进行转义。