iOS中的正则表达式

iOS中的正则表达式,ios,regex,Ios,Regex,我正在寻找一个正则表达式来匹配以下内容-100..100:0.01。此表达式的含义是该值可以增加0.01,并且应该在-100到100之间 有什么帮助吗 (\b|-)(100(\.0+)?|[1-9]?[0-9](\.[0-9]{1,2})?\b 说明: (\b|-) # word boundary or - ( # Either match 100 # 100 (\.0+)? # optionally followed by .00..

我正在寻找一个正则表达式来匹配以下内容
-100..100:0.01
。此表达式的含义是该值可以增加0.01,并且应该在-100到100之间

有什么帮助吗

(\b|-)(100(\.0+)?|[1-9]?[0-9](\.[0-9]{1,2})?\b
说明:

(\b|-)      # word boundary or -
(           # Either match
 100        #  100
 (\.0+)?    #  optionally followed by .00....
|           # or match
 [1-9]?     #  optional "tens" digit
 [0-9]      #  required "ones" digit
 (          #  Try to match
  \.        #   a dot
  [0-9]{1,2}#   followed by one or two digits
 )?         #   all of this optionally
)           # End of alternation
\b          # Match a word boundary (make sure the number stops here).

if(val>=-100&&val为什么要使用正则表达式?为什么不直接执行以下操作(在伪代码中):


您可以改用
NSRegularExpression
。它确实支持
\b
,顺便说一句,不过您必须在字符串中对其进行转义:

NSString *regex = @"\\b-?1?[0-9]{2}(\\.[0-9]{1,2})?\\b";
不过,我认为
\\W
会是一个更好的主意,因为
\\b
在检测数字上的负号时会出错

最好的例子是:

NSString *string = <...your source string...>;
NSError  *error  = NULL;

NSRegularExpression *regex = [NSRegularExpression 
  regularExpressionWithPattern:@"\\W-?1?[0-9]{2}(\\.[0-9]{1,2})?\\W"
                       options:0
                         error:&error];

NSRange range   = [regex rangeOfFirstMatchInString:string
                              options:0 
                              range:NSMakeRange(0, [string length])];
NSString *result = [string substringWithRange:range];
NSString*string=;
n错误*错误=NULL;
NSRegularExpression*regex=[NSRegularExpression
regularExpressionWithPattern:@“\\W-?1?[0-9]{2}(\\\.[0-9]{1,2})?\\W”
选项:0
错误:&错误];
NSRange range=[regex rangeOffirstMachinString:string
选项:0
范围:NSMakeRange(0,[字符串长度]);
NSString*result=[string substringWithRange:range];
我希望这有帮助。:)


编辑:根据下面的注释进行修复。

想要用正则表达式解决这个问题是什么意思?想要得到一个正则表达式,我可以在我的iOS应用程序中对其进行计算。
-100..100:0.01
是文字表示吗,或者你能举一些例子吗。否则就是浪费时间。这意味着值的范围是-100到100,中间值的增量可以是.01,即小数点后只有2位。所以范围会像..[-100.00,-99.99,-99.98,…,99.99100.00]。希望这能给出清晰的想法。iOS正则表达式计算器NSPredicate不理解/b和转义序列:(
NSRange*range
应该是
NSRange range
NSString *regex = @"\\b-?1?[0-9]{2}(\\.[0-9]{1,2})?\\b";
NSString *string = <...your source string...>;
NSError  *error  = NULL;

NSRegularExpression *regex = [NSRegularExpression 
  regularExpressionWithPattern:@"\\W-?1?[0-9]{2}(\\.[0-9]{1,2})?\\W"
                       options:0
                         error:&error];

NSRange range   = [regex rangeOfFirstMatchInString:string
                              options:0 
                              range:NSMakeRange(0, [string length])];
NSString *result = [string substringWithRange:range];