【问题标题】:NSString regex string matching/searchNSString 正则表达式字符串匹配/搜索
【发布时间】:2013-04-24 23:58:38
【问题描述】:

我有一个类似 @"random ++qwerty/asdf" 的字符串,我想找出 qwerty 部分。 “random ++”和“/asdf”总是相同的。我将如何使用正则表达式来做到这一点?我对它们的工作方式感到困惑。

【问题讨论】:

  • Here is a good resource.你试过什么?
  • 我会看这里,hte nsregularexpression 文档真的很混乱
  • 诚然,正则表达式不够直观,无法通过阅读文档轻松学习。但是,如果您花一些时间阅读链接的教程(至少是前几章),您会非常了解它 - 这绝对是很有价值的知识。
  • 你可以使用-substringWithRange:
  • BOOL isRightFormat = [string rangeOfString: @"random ++"].location == 0;

标签: ios objective-c regex nsstring


【解决方案1】:

问题解决了!!

这段代码正是你想要的,

NSString *yourString = @"random ++qwerty/asdf random ++derty/asdf random ++noty/asdf";
NSError *error = NULL;

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"random \\+\\+(\\w+)/asdf" options:NSRegularExpressionCaseInsensitive error:&error];


[regex enumerateMatchesInString:yourString options:0 range:NSMakeRange(0, [yourString length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){

    // detect
    NSString *insideString = [yourString substringWithRange:[match rangeAtIndex:1]];

    //print
    NSLog(@"%@",insideString);

}];


输出:
qwerty
德蒂
注意

【讨论】:

  • 有这么多可用于正则表达式的资源,对于特定类型的匹配有这样的具体示例仍然很有帮助!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-05
  • 2013-12-25
  • 1970-01-01
相关资源
最近更新 更多