【发布时间】:2014-01-14 21:06:12
【问题描述】:
我在查找由一对 ** 字符表示的多组子字符串并将它们加粗时遇到问题。例如在这个 NSString 中:
The Fox has **ran** around the **corner**
应该阅读:狐狸已经跑绕过角落
这是我的代码:
NSString *questionString = queryString;
NSMutableAttributedString *mutableAttributedString = [[NSMutableAttributedString alloc] initWithString:questionString];
NSRange range = [questionString rangeOfString:@"\\*{2}([^*]+)\\*{2}" options:NSRegularExpressionSearch];
if (range.location != NSNotFound) {
[mutableAttributedString setAttributes:@{NSFontAttributeName:[UIFont boldSystemFontOfSize:size]} range:range];
}
[[mutableAttributedString mutableString] replaceOccurrencesOfString:@"**" withString:@"" options:NSCaseInsensitiveSearch range:NSMakeRange(0, queryString.length)];
return mutableAttributedString;
这段代码只捕捉到一对指定的字符,所以我得到的只是:狐狸已经跑到拐角处了
有什么想法吗?
【问题讨论】:
-
@rmaddy 不,不是骗子。我在那里问了一个不同的问题。我实际上在那里得到了答案并将其应用于新代码。这个问题是另一个问题
-
您是否厌倦了在全局上下文中运行正则表达式替换?
-
怎么不一样?两者都询问如何将分隔值转换为属性字符串。
标签: ios objective-c regex nsregularexpression