当前位置: 首页 > wzjs >正文

美食网站建设多少钱软件开发环境

美食网站建设多少钱,软件开发环境,艺术家网站建设中企业网站建设的策划初期的一些误区,wordpress20141、编写逻辑 使用分类(Category)的方法拓展NSString,本文使用NSString (Markdown),NSString的分类来编写一个通用方法,使用正则表达式匹配字符串实现去除特殊字符,并自定义文字属性。 在接入AI大模型后,返回的字符串…

1、编写逻辑

使用分类(Category)的方法拓展NSString,本文使用NSString (Markdown),NSString的分类来编写一个通用方法,使用正则表达式匹配字符串实现去除特殊字符,并自定义文字属性。

在接入AI大模型后,返回的字符串会带有特殊字符用于做文字处理,下面代码简单进行了文字处理展示。

2、代码实现

1、NSString+Markdown.h

#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGIN@interface NSString (Markdown)- (NSAttributedString *)attributedStringFromMarkdown;@endNS_ASSUME_NONNULL_END

2、NSString+Markdown.m

文中做了处理 ### 与 **加粗文本** 的处理,可根据需求进行拓展

#import "NSString+Markdown.h"static NSRegularExpression *_headerRegex;
static NSRegularExpression *_boldRegex;
static dispatch_once_t onceToken;@implementation NSString (Markdown)- (NSAttributedString *)attributedStringFromMarkdown {NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:self];// 设置默认字体,做自适应高度时,必须要设置默认字体UIFont *defaultFont = [UIFont systemFontOfSize:20];[attributedString addAttribute:NSFontAttributeName value:defaultFont range:NSMakeRange(0, attributedString.length)];// 一次性初始化正则表达式dispatch_once(&onceToken, ^{NSError *error;// 匹配 ### 标题_headerRegex = [NSRegularExpression regularExpressionWithPattern:@"^###\\s*(.*?)\\s*(?=\n)"options:NSRegularExpressionAnchorsMatchLineserror:&error];if (error) {NSLog(@"### 正则表达式初始化失败: %@", error.localizedDescription);}// 匹配 **加粗文本**_boldRegex = [NSRegularExpression regularExpressionWithPattern:@"\\*\\*(.*?)\\*\\*"options:0error:&error];if (error) {NSLog(@"** 正则表达式初始化失败: %@", error.localizedDescription);}});// 处理 "### 标题" 的加粗,并去掉 "###"NSArray *headerMatches = [_headerRegex matchesInString:attributedString.stringoptions:0range:NSMakeRange(0, attributedString.length)];for (NSTextCheckingResult *match in [headerMatches reverseObjectEnumerator]) {NSRange fullMatchRange = match.range;          // 包含 ### 的完整匹配范围NSRange contentRange = [match rangeAtIndex:1]; // 实际要加粗的内容if (contentRange.location != NSNotFound) {// 1️⃣ 应用加粗样式[attributedString addAttributes:@{NSFontAttributeName: [UIFont boldSystemFontOfSize:20]} range:contentRange];// 2️⃣ 替换 "### 标题" 只保留标题文本NSString *content = [attributedString.string substringWithRange:contentRange];[attributedString replaceCharactersInRange:fullMatchRange withString:content];// 3️⃣重新获取新文本的位置NSRange newRange = NSMakeRange(fullMatchRange.location, content.length);// 重新加粗[attributedString addAttributes:@{NSFontAttributeName: [UIFont boldSystemFontOfSize:20]} range:newRange];}}// 处理 "**加粗文本**" 的加粗,并去掉 "**"NSArray *boldMatches = [_boldRegex matchesInString:attributedString.stringoptions:0range:NSMakeRange(0, attributedString.length)];for (NSTextCheckingResult *match in [boldMatches reverseObjectEnumerator]) {NSRange fullMatchRange = match.range;          // 包含 ** 的完整匹配范围NSRange contentRange = [match rangeAtIndex:1]; // 实际要加粗的内容if (contentRange.location != NSNotFound) {// 1️⃣ 应用加粗样式[attributedString addAttributes:@{NSFontAttributeName: [UIFont boldSystemFontOfSize:20]} range:contentRange];// 2️⃣ 替换 "**加粗文本**" 只保留加粗文本NSString *content = [attributedString.string substringWithRange:contentRange];[attributedString replaceCharactersInRange:fullMatchRange withString:content];// 3️⃣重新获取新文本的位置NSRange newRange = NSMakeRange(fullMatchRange.location, content.length);// 重新加粗[attributedString addAttributes:@{NSFontAttributeName: [UIFont boldSystemFontOfSize:20]} range:newRange];}}return attributedString;
}@end

3、调用方法

NSString *text = [message.text attributedStringFromMarkdown].string;


文章转载自:

http://8OoVkefE.nfsrs.cn
http://2gUtZvyt.nfsrs.cn
http://hGv0oKfU.nfsrs.cn
http://H6QCoD5M.nfsrs.cn
http://U2N6TmLr.nfsrs.cn
http://9ZeZgjXd.nfsrs.cn
http://wU4oza5f.nfsrs.cn
http://sHPaYTDv.nfsrs.cn
http://eWHhpiQi.nfsrs.cn
http://NkBzCEVc.nfsrs.cn
http://yTLl4yLJ.nfsrs.cn
http://Pmhla4qZ.nfsrs.cn
http://pVJNh3OY.nfsrs.cn
http://5YzCmr24.nfsrs.cn
http://wmuT6AOV.nfsrs.cn
http://1Fk9W0r7.nfsrs.cn
http://FSigLdP4.nfsrs.cn
http://ffYdEwS6.nfsrs.cn
http://Sddnwt4X.nfsrs.cn
http://PTPxkXoT.nfsrs.cn
http://bRLBzVew.nfsrs.cn
http://UpbFOPx4.nfsrs.cn
http://LJb3CaV4.nfsrs.cn
http://04D8GYcM.nfsrs.cn
http://RVMx82o3.nfsrs.cn
http://wDUNcuLw.nfsrs.cn
http://yFRZDkl8.nfsrs.cn
http://Gq3o9bnh.nfsrs.cn
http://Vu686vdM.nfsrs.cn
http://GJqgwhgX.nfsrs.cn
http://www.dtcms.com/wzjs/683531.html

相关文章:

  • 做网站是怎么收费的是按点击率wordpress 作品
  • 南山网站建设 信科网络西安行业网站建设
  • 西城网站建设浩森宇特网站开发小公司推荐
  • 花生壳可做网站吗网站建设网络推广代理公司
  • 哪个网站做的ppt模板好高手总结wordpress函数
  • 广州个人网站建设网站强制qq弹窗代码
  • 如何建设移动网站自己网站如何做关键词排名
  • 360建网站wordpress windows live writer
  • 漳州电脑网站建设虚拟展馆官方网站建设
  • 电子商务网站建设策划书范文房地产网站大全
  • 建设部网站质量终身责任承诺书织梦绿色企业网站模板
  • 做产品网站建设小程序加盟代理前景
  • 怎么看网站是否被k过怎么制作网站链接转发视频
  • saas建站平台介绍奇搜建设辽沈阳网站
  • 学校网站前置审批照片变年轻在线制作网站
  • 哪些网站做电商比较好如何制作flash网站
  • 怎么样通过做网站赚钱吗网页游戏不花钱的
  • 东莞营销网站制作你们需要网站建设
  • 娄底建设网站伊宁seo网站建设
  • 西安 网站设计做网站这么做
  • 阿里云个人备案可以做企业网站浏览器在线进入
  • 统计局门户网站建设背景做网站需要考虑哪些
  • 丰南建设网站网页版梦幻西游10月五行斗法攻略
  • wordpress 做一个视频站网站建设优化服务
  • 网站建设费用的会计核算个人互动网站
  • 做防护用品的网站唐山网站制作企业
  • 龙岩网站推广seo综合查询 站长工具
  • 点击量高的网站网站充值系统怎么做
  • 网站建设技术要求标准网站建设与管理 第2版
  • 南宁庆云网站建设北美购物网站排名