版权声明:本文为博主原创文章,未经博主允许不得转载。
月末了,这个月才写了2遍文章,对自己略感失望了,最近是有些忙,等闲些日子后,再整理一些文章分享给大家!
这遍是关于正则表达式,因为写项目时要用到正则表达式,所以就学习了下,另写一遍文章,方便记忆!
1、首先是介绍正则的语法
在此网上搜索的一些文章供参考:
http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html
http://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx
常用到的一些:
2、关于处理微博上类似 @ 或者 # 的特殊转义字符
可以用:AutoHyperlinks
但是有人说,不支持中文,那么,咱们只要改一下正则就可以了
下载文件打开JSTwitterCoreTextView.m
把如下正则:
NSArray *expressions = [[[NSArray alloc] initWithObjects:
@"(@[a-zA-Z0-9_]+)",// screen names
@"(#[a-zA-Z0-9_-]+)",// hash tags
nil] autorelease];
改成:
NSArray *expressions = [[[NSArrayalloc]initWithObjects:
@"(@[a-zA-Z0-9_\u4E00-\u9FA5]+)",// screen names
@"(#([a-zA-Z0-9_\u4E00-\u9FA5]*)#)",// hash tags
nil] autorelease];
“@[a-zA-Z0-9_\u4E00-\u9FA5]+” :意思是以@开头的后面可以跟a-z、A-Z、0-9、_(下划线)、\u4E00-\u9FA5(汉字)、+(+是和*类似的元字符,不同的是*匹配重复任意次(可能是0次),而+则匹配重复1次或更多次),可以用这些组成字符串
“#([a-zA-Z0-9_\u4E00-\u9FA5]*)#)” :意思是只能是两个#号之间组成的字符串
.根据汉字字符串获取该字符串的拼音然后取得首字母
分享资源 汉字转换为 拼音 获取首字母
//获取拼音首字母(传入汉字字符串, 返回大写拼音首字母)
/*
- (NSString *)firstCharactor:(NSString *)aString
{
//转成了可变字符串
NSMutableString *str = [NSMutableString stringWithString:aString];
//先转换为带声调的拼音
CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO);
//再转换为不带声调的拼音
CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformStripDiacritics,NO);
//转化为大写拼音
NSString *pinYin = [str capitalizedString];
//获取并返回首字母
return [pinYin substringToIndex:1];
}
*/
NSString *string = @"简书" ;
if ([string length])
{
NSMutableString *mutableString = [NSMutableString stringWithString:string] ;
/**
* 由于此方法是在coreFoundation框架下,咱们平时所使用的类型都是Foundation框架下的,所以需要转换类型.
*
* @param string#> string 所需要转换的原字符#>
* @param range#> range 所需要转换字符的范围.如果为0或者是NULL意思是所有字符都转换#>
* @param transform#> transform 转换方式#>
* @param reverse#> reverse 如果为YES,返回原字符串;如果为NO,返回转换之后的字符串#>
*
* @return return value description
*/
// 将所有非英文的字符转换为拉丁字母,并且带声调和重音标识
// __bridge :只改变当前对象的类型,但是不改变对象内存的管理权限
CFStringTransform((__bridge CFMutableStringRef)mutableString , 0,kCFStringTransformToLatin , NO) ;
// 去掉声调
CFStringTransform((__bridge CFMutableStringRef)mutableString , 0,kCFStringTransformStripDiacritics , NO) ;
// 每个单词的首字母大写 后再截取字符串
NSString *str = [[mutableString capitalizedString] substringToIndex:1];
}