0

我正在尝试构建一个导数计算器,因此我将方程分解为组件并匹配每个部分以确定要应用的规则,但我对正则表达式完全陌生。

现在,我正在尝试匹配 x^n 和 Ax^nx ,其中 A 和 n 是常数。这是我的等式:x{0,}^[0-9]{0,}但是当我运行下面的代码并输入类似asdf5和的内容x^3时,它们都会在只x^3应返回时作为匹配项返回。等式或我在下面应用它的方式有问题吗?

NSRegularExpression* regex = [[NSRegularExpression alloc] initWithPattern: @"x{0,}^[0-9]{0,}" options: NSRegularExpressionCaseInsensitive error: nil];

if ([regex numberOfMatchesInString: equation options: NSMatchingHitEnd range: [equation rangeOfString: equation]] > 0)
{
    NSLog(@"Match x^n");
}
else
{
    NSLog(@"Not x^n");
}
4

1 回答 1

0

^描绘了字符串的开头,所以它应该像\^

regex应该是

@"\d*x\\^\d*"

\d代表一个数字..

*表示匹配 0 到多个\d

于 2013-01-11T19:48:17.843 回答