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];