cocoa – 如何使用NSScanner以^ [a-zA-Z _]的形式进行扫描[a-zA-Z0-9 _] *

前端之家收集整理的这篇文章主要介绍了cocoa – 如何使用NSScanner以^ [a-zA-Z _]的形式进行扫描[a-zA-Z0-9 _] *前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正试图让我的NSScanner尝试扫描以下正则表达式:[a-zA-Z _] [a-zA-Z0-9 _] *,但我遇到了困难.

我可以尝试首先读取a-Z_,然后尝试追加a-Z0-9_.

我想知道是否有更简单/更有效的方法.请让我知道,谢谢.

澄清:
我不是要尝试执行正则表达式.我只是想读一个看起来像上面的正则表达式的字符串.看起来类似于C风格变量的东西.基本上,任何字母数字,但不能以数字开头.

澄清2:
我试图让扫描仪读取([]表示每个读取令牌):
 “测试3”为[测试,3]
 “test3”为[test3]
 “3测试”为[3,测试]
 “_3test”为[_3test]
 “_3测试”为[3,测试]
 “3 3test”为[,3,测试]
 “3 test3”为[_,test3]

解决方法

你需要两个字符集:

> @L_301_0@
> [NSCharacterSet alphanumericCharacterSet]

使用这些将使您能够匹配Unicode中的所有字母和数字,而不仅仅是英文字母和数字集.如果你真的只想要那些更小的集合,它们很容易使用characterSetWithCharactersInString:和/或characterSetWithRange:构造.如果使用后一种方法,你需要在其中创建一个NSMutableCharacterSet和union另一个字符集.

一旦你拥有了你的角色,就很容易scan characters only characters within a set然后,如果你想,concatenate one string onto the other.

猜你在找的cocoa相关文章