(iPhone アプリの Objective-C で) 正規表現を使用して数式を一致させようとしていますが、以下にリストされている 2 番目のシナリオで機能する正規表現を考え出すのに役立つ可能性があります。
次の目的の C コードを作成して、フォームの方程式を抽出する(1÷4)
か(-1÷4)
、積または除算器の前に負の数がある場合:
NSString* equation = @"1+(-1÷4)";
NSString* matcher = @"(-){0,1}(\\.|\\d)+(÷|×){1,}";
NSRegularExpression *equation_regex = [NSRegularExpression regularExpressionWithPattern:matcher options:NSRegularExpressionCaseInsensitive error:nil];
while([equation_regex numberOfMatchesInString:working_function options:0 range:NSMakeRange(0, [equation length])])
{
// regex finds '-1÷4'
}
ただし、これは次の式では当てはまりません: 3-1÷4 ここで、-1 は式の 1÷4 の一部ではないため、抽出されるべきではありません。
私は正規表現を変更しようとしました(正規表現の専門知識が限られています!)-1 IFFを除外して、次の方法で-の前に数字があります:
NSString* equation = @"3-1÷4";
NSString* matcher = @"((^\\d)(-)){0,1}(\\.|\\d)+(÷|×){1,}";
NSRegularExpression *power_regex = [NSRegularExpression regularExpressionWithPattern:power_regex_pattern options:NSRegularExpressionCaseInsensitive error:nil];
while([power_regex numberOfMatchesInString:working_function options:0 range:NSMakeRange(0, [working_function length])])
{
}
正規表現((^\\d)(-)){0,1}
は、 - に先頭の数字がない場合(つまり1÷4
、 not -1÷4
)にのみ負の部分を一致させようとする私の試みであり、機能しないため、質問です。これで十分に説明できたと思います!前もって感謝します。