tbox里面针对三个正则库(pcre/pcre2/posix)进行了封装,实现接口统一和跨平台处理,只要xmake在编译配置的时候自动检测到其中一种库,就可以使用了,一般会优先使用pcre2。
如果你不想过多的依赖第三方库,可以切换到posix的正则,调用 xmake f --pcre=false --pcre2=false 把pcre的库禁用了就行了。
首先给个最简单的匹配单个子串的例子:
```c
// 执行简单匹配,第二个参数是匹配模式,默认传0就行了
tb_vector_ref_t results = tb_regex_match_done_simple("(\w+)\s+?(\w+)", 0, "he
继续阅读 »
我们可以在Objective-C运行时将一个类中的一个方法,动态的替换为该类中的另一个方法。并且在替换后的方法中,依然可以调用以前的方法。
```
import
void MethodSwizzle(Class aClass, SEL orig_sel, SEL alt_sel)
{
Method orig_method = nil, alt_method = nil;
// First, look for the methods
orig_method = class_getInstanceMethod(aClass, orig_sel);
alt_method = class_getInstanceMet
继续阅读 »
是时候总结一下vim的使用方法了,一方面防止自己忘记不常用的指令,另一方面给大家提供一个参考。
等有时间再把文中的链接内容展开介绍。
先来看看我的vim
vim键盘图
vim的安装
exvim中文这里面包含了exvim的安装与配置,以及插件的安装。
vim指令入门
Vim入门教程这篇文件是我强烈推荐的,入门必备,告诉你如何使用指令,
如何人类的语言来使用指令。
高频组合指令
单指令是必须记住的,这里提几个组合指令。
替换: :s/a/b将该行的第一个a替换成b,:s/a/b/g替换该行的所有a,:n,ms/a/b替换n行到m行,%s/a/b替换所有行的第一个a,%s/a/b/g替换所有a
选中: v20G,
继续阅读 »
这是一个系列文章,主要分享shell(部分功能仅适用于bash)的使用建议和技巧,每次分享3点,希望你能有所收获。
另外,这些建议和技巧都是我工作中用到的,只有我用到了才会记录并分享出来,所以没有什么顺序而言,用到什么我就分享什么。
1 sed替换文件内容
$ cat demo
this is demo
$ sed -i s/demo/test/g demo
$ cat demo
this is test
通过sed,可以很方便替换文件中的某些字符串。比如这里的demo文件只有一行内容:this is demo。通过sed将文件中的demo字符串替换成test。这里的-i选项是直接修改文件内容,字母s表示替换字符,字母g
继续阅读 »
文/Robin
由于笔者平时有使用 Photoshop 修图作图的需求,所以在什么渠道获取到正版 Photoshop 就是亟需解决的问题。
可能读者有问题了,互联网上 Photoshop 破解版遍地都是,何苦寻求正版呢。笔者在 2017 年给自己定了一个强制要求,所有的软件必须使用正版。其一,这是对开发者、项目方的支持和尊重,倘若他们都没有收入,如何给我们带来稳定的服务?其二,破解版通常会有多种方式,比如注册码、注册机、替换特殊文件、下载完整破解版。注册码的安全隐患还好,但要找到一个能用的注册码是需要花费大量的时间和精力。注册机、替换特殊文件、下载完整破解版,这几种方式对原本的软件都是有侵入的,至于是什么程度的侵入,又会带来
继续阅读 »
引言
Hexo的评论系统在国内一般选用多说或友言,在我的博客主题中,早期使用的是友言,在0.1.0版本之后,我在主题中将其替换成了多说。为什么要替换呢?因为友言对于评论数,转发数等支持不好,而且也不开放API。
多说配置
登录
直接访问http://duoshuo.com 登录,多说支持QQ,微博等多种方式登录。
创建二级域名
登录多说后,先创建一个xxx.duoshuo.com的二级域名,比如我创建的ieclipse.duosuo.com,然后在管理台中做相应的配置。因为都是中文,就不详细说了。特别提一下的是以下几点:
域名白名单,在设置中,在域名白名单中添加本地地址,如127.0.0.1,不然有可能本地测试时,发现
继续阅读 »
前段时间由于项目需求,移除了项目中的微信支付SDK和支付宝支付SDK,这种情况下需要自己搞定支付,第一时间考虑到的是使用openshare,但是当下载openshare下来后发现,openshare的支付接口,并不能直接替换官方SDK支付接口,
官方SDK的实现逻辑是后台订单签名完成后,客服端传签名信息及参数给支付SDK,支付SDK生成协议url,然后拉起第三方支付APP,
而openshare的支付接口是直接传拉起支付的协议url地址,将生成协议url地址的操作也交给后台来生成,
这样的话后台需要修改代码,
能否不修改后台代码,弄一个支付接口直接替换官方SDK支付接口,实现无缝对接呢,于是就研究了下微信和支付宝支付时APP间通讯关
继续阅读 »
目前许多Android App都带有一个底部栏,通过底部栏可以切换Tab,比如微信,QQ都是这种风格。对于像小红点之类的醒目提醒,用得最多的就是BadgeView了,不过,如果底部栏是RadioGroup的话,那么不好意思BadgeView可不支持哦(如果使用BadgeView,RadioGroup就不能愉快地工作了)。那么如何即保留使用RadioGroup又能添加BadgeView的功能呢?请接着阅读本文。
本文阐述的是使用QuickAF的RadioBadgeView来解决RadioButton与BadgeView的冲突。在RadioButton上显示Badge消息提醒,需要将原来的RadioButton替换成RadioBadg
继续阅读 »
简介
首先上个图
{% asset_img preference.png %}
Preference控件的目的在于替换Android自带的Preference,在[QuickAF]中,Preference被设计为控件,可以在layout/Activity中随意使用,不必像自带的Preference,需要配合res/xml/xxx_preference、PreferenceFragment/PreferenceActivity使用。
继续阅读 »
这篇中有几个点是受到瑛那同学的指导翻译出来的,表示感谢
添加多用户账户
Meteor带来了一套账户系统然后顺便还带了用户界面来让你可以在几分钟之内在你的应用中添加多用户功能
目前,这套UI组件使用Blaze作为默认的UI引擎,在未来,可能会以React的专有组件来将其替换。
继续阅读 »