ios - 如何编写正则表达式?

标签 ios regex nsregularexpression

我有这样的 NSString

/:012/:^_^/:^$^ some string

如何使用正则表达式 (NSRegularExpression) 提取以 /: 开头的单词,请协助。谢谢

最佳答案

你可以使用

NSString *pattern = @"/:\\S*?(?=/:|\\s|$)";

参见 regex demo .

详细信息:

  • /: - /: 子串
  • \S*? - 除空格外的零个或多个字符,尽可能少(但不包括)以下字符的第一次出现:
  • (?=/:|\s|$) - /: 子字符串、空格或字符串结尾。

Objective-C demo :

NSError *error = nil;
NSString *pattern = @"/:\\S*?(?=/:|\\s|$)";
NSString *string = @"/:012/:^_^/:^$^ some string";
NSRange range = NSMakeRange(0, string.length);
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error];
NSArray *matches = [regex matchesInString:string options:0 range:range];
for (NSTextCheckingResult *match in matches) {
   NSRange matchRange = [match range];
   NSString *m = [string substringWithRange:matchRange];
   NSLog(@"Matched string: %@", m);
}

结果:

Matched string: /:012
Matched string: /:^_^
Matched string: /:^$^

关于ios - 如何编写正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43804334/

相关文章:

ios - 如何将 Youtube 视频嵌入到我的应用程序中?

python - 从替换映射递归替换

regex - 匹配任何数字的正则表达式是什么,它们之间有空格?

c# - 是否有专门用于 byte[] 数组的众所周知的 .NET REGEX 库?

ios - 从 JSON 创建对象后,如何向 RestKit 映射对象添加新属性?

ios - 配置 UICollectionViewDataSourcePrefetching 范围

objective-c - stringByReplacingOccurrence 不替换字符串

ios - 使用带有替换函数的正则表达式替换

objective-c - NSRegularExpression 从 numberOfRanges 方法给出了错误的结果

ios - 不同单词的正则表达式(不嵌入其他单词)