回答
我猜,你一个寻找NSScanner
类,至少,如果你在一般的情况下。看看苹果documentation。
NSString *myString = @"{53} balloons";
NSRange start = [myString rangeOfString:@"{"];
NSRange end = [myString rangeOfString:@"}"];
if (start.location != NSNotFound && end.location != NSNotFound && end.location > start.location) {
NSString *betweenBraces = [myString substringWithRange:NSMakeRange(start.location+1, end.location-(start.location+1))];
}
编辑:添加范围检查,THX到Keab42 - 好点。
你应该检查两个范围是不是NSNotFound和end.location> start.location – Keab42 2013-02-19 14:07:58
感谢您的好答案。这是我做的: NSCharacterSet * delimiters = [NSCharacterSet characterSetWithCharactersInString:@“{}”]; NSArray * splitString = [myString componentsSeparatedByCharactersInSet:delimiters]; NSString * substring = [splitString objectAtIndex:1]; 的子串是53. – Emmy 2013-02-20 07:58:12
如果你不知道有多少个数字会出现,但你知道它总是会附在花括号试试这个:
NSString *myString = @"{53} balloons";
NSRange startRange = [myString rangeOfString:@"{"];
NSRange endRange = [myString rangeOfString:@"}"];
if (startRange.location != NSNotFound && endRange.location != NSNotFound && endRange.location > startRange.location) {
NSString *value = [myString substringWithRange:NSMakeRange(startRange.location,endRange.ocation - startRange.location)];
}
有可能做到这一点,虽然更有效的方式。
经过与任意数量的数据:
NSString *str = @"{53} balloons";
NSArray* strary = [str componentsSeparatedByString: @"}"];
NSString* str1 = [strary objectAtIndex: 0];
NSString *str2 = [str1 stringByReplacingOccurrencesOfString:@"{" withString:@""];
NSLog(@"number = %@",str2);
另一种方法是
NSString *tmpStr = @"{53} balloons";
NSRange r1 = [tmpStr rangeOfString:@"{"];
NSRange r2 = [tmpStr rangeOfString:@"}"];
NSRange rSub = NSMakeRange(r1.location + r1.length, r2.location - r1.location - r1.length);
NSString *subString = [tmpStr substringWithRange:rSub];
如果只有它的情况下牙套可以使用:
NSString *str = @"{53} balloon";
NSString * noBraces = [[str stringByReplacingOccurrencesOfString:@"{" withString:@""]
stringByReplacingOccurrencesOfString:@"}" withString:@""];
这个结果不会返回'53'。相反,它会返回'53个气球'。 – Jeremy 2013-02-19 14:09:30
好,所以你只需要53个@“{53} ballon”。 – spider1983 2013-02-19 14:10:20
我什么都不想要。不过,艾美表现在20个字以内。 – Jeremy 2013-02-19 14:11:01
这里是我的没有。
NSString *myString = @"{53} balloons";
NSCharacterSet *delimiters = [NSCharacterSet characterSetWithCharactersInString:@"{}"];
NSArray *splitString = [myString componentsSeparatedByCharactersInSet:delimiters];
NSString *substring = [splitString objectAtIndex:1];
的子是53
谢谢@艾米。这对我有效 – 2015-12-27 19:06:03
您可以使用正则表达式来获得括号之间的数字。这看起来有点复杂,但好处是它会找到多个号码,号码的位置并不重要。
NSString *searchText = @"{53} balloons {12} clowns {123} sparklers";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\{(\\d+)\\}"
options:0
error:nil];
NSArray *matches = [regex matchesInString:searchText
options:0
range:NSMakeRange(0, searchText.length)];
for (NSTextCheckingResult *r in matches)
{
NSRange numberRange = [r rangeAtIndex:1];
NSLog(@"Number: %@", [searchText substringWithRange:numberRange]);
}
这将打印出:
Number: 53
Number: 12
Number: 123
对于雨燕2.1: -
var start = strData?.rangeOfString("{")
var end = strData?.rangeOfString("}")
if (start!.location != NSNotFound && end!.location != NSNotFound && end!.location > start!.location) {
var betweenBraces = strData?.substringWithRange(NSMakeRange(start!.location + 1, end!.location-(start!.location + 1)))
print(betweenBraces)
}
- 1. R:获取大括号之间的字符串{}
- 2. 使用RegEx提取大括号之间的字符串,即{{content}}
- 3. 正则表达式获取括号之间的字符串
- 4. 如何在两个括号之间提取字符串 - 的JavaScript
- 5. 如何在圆括号之间捕获一个字符串?
- 6. 如何从文件中提取大括号之间的字符串
- 7. 需要删除大括号之间的字符串
- 8. 如何获取字符串中的括号内的字(java)
- 9. 正则表达式在大括号之间得到字符串
- 10. 提取第三组括号之间的字符串
- 11. 如何获得“括号内”字符串中的字符串?
- 12. 如何删除谷歌电子表格中括号之间的字符串
- 13. ( - 开大括号和之间)提取文本 - 右大括号
- 14. 如何提取同一级别的花括号之间的字符串?
- 15. 获取python列表中的字符串之间的子串
- 16. 获取{}括号之间的内容
- 17. 如何分割字符串以获取大括号中的最后一项?
- 18. 从引号之间提取字符串
- 19. 获取两个子串之间的字符串
- 20. 如何找到两个字符串之间的子字符串?
- 21. 提取Haskell中两个子字符串之间的字符串
- 22. 获取两个等号之间的字符串
- 23. 如何获取Java中两个数字之间的字符串?
- 24. 如何获得括号内的子串在C#中的字符串?
- 25. 选择两个括号之间的字符串的一部分
- 26. 如何获得两个字符串之间最重复的子字符串?
- 27. 如何获取字符串中的第三个和第四个分隔字符之间的子字符串?
- 28. PHP大括号和字符串
- 29. 从括号中获取子串JAVA
- 30. 如何获取任意数目的括号之间的文本?
艾美奖,你找的字符串中搜索,或你知道的位置字符串已经(位置1),你只是想把它解压到另一个字符串中。 – Spectravideo328 2013-02-19 13:55:39
如果你只是想提取大括号之间的子字符串,我赞同@ iDroid的答案。如果你经过更复杂的搜索,请看看这个:http://stackoverflow.com/questions/4353834/search-through-nsstring-using-regular-expression。显然要记住使用这种方法的资源成本。 – sjwarner 2013-02-19 14:08:20
不。我不知道53的位置,myString将是引擎生成的随机字符串。我需要在{}之间取得53作为答案。但我现在已经弄清楚了如何去做。请参阅下面的答案。 – Emmy 2013-02-20 08:05:02