sed正则的扩展与非扩展区别

sed的正则表达式,有扩展正则与基本正则(或叫非扩展正则)之分,默认非扩展。两者区别主要是对几个特殊字符的定义上:即 问号‘?’,加号 ‘+’, 圆括号‘()’, 花括号‘{}’, 竖线管道符 ‘|’

这是个坑,尤其对习惯使用扩展正则语法的用户而言。

我们一般用的是 GNU 的 sed ,以之为例。

具体来说,两者区别是,在基本正则中,上述几个字符本身没有定义特殊功能,与其它普通字符一样,只代表它们字面上的字符。而在扩展正则上,则有相应的定义。

不过,事实上,在基本正则模式下,还是能让这几个字符表示相应的正则符号定义,方法是用反斜线\转义一下。这样就显得有点怪异了,扩展[……]

继续阅读

[收集帖] 常用入声字表

http://wx.shangdiguo.com/blog.asp?wenzhangid=35658

常用入声字表

最常用的入声字(431个)

B  八白百北捌笔剥薄柏伯别勃逼钵拔鳖憋跋钹舶帛泊渤脖博搏膊驳卜佰雹拨

C  擦察插撮吃出戳拆撮

D 答搭达得夺德敌碟蝶独迭叠褡滴夺度跌读督咄的沓笛迪狄荻嫡镝籴喋堞牒涤犊牍渎毒铎踱度癖撇匹朴笃谍耋督

E  额

F  发福法幅乏璞仆伐筏阀罚佛弗拂彿伏茯服蝠辐

G  格隔阁革搁骨疙胳割鸽刮聒郭膈国帼虢葛骼鹄

H  喝活黑合忽核盒曷阖劾阂貉涸翮斛滑曷斛滑豁

J  节迹洁吉击急及极积极级激即觉绝杰捷决绩缉楫屐[……]

继续阅读

思维碎片

这是一篇草稿了很多年的文章,算是一些记录吧

回复LX1 年前 {LX1 年前: 世界就是由计算机二进制语言组织起来的。不错。}二进制,包括其它的任何理论,都是一种抽象,而抽象必然伴随着信息的丢失。任何理论,都是对现象的描述,不是现象本身。我好像扯太远了

1 年前
已经不记得是初中还是小学时,生出的一个奇怪念头:每个人是否都是在做梦,从一生下来就在做梦,直到最后的醒来,就是死亡。

161221  写给iOS开发人员的一条原则,这些内容好像是不言而喻,应该是开发人员的必备意识

使用任何一个变量(包括对象、属性)时,要事先保证其有效性,尤其是通过调用各类接口[……]

继续阅读

MySQL/MariaDB已被锁表运行中热复制为副本/innodb表错误Table xx doesn’t exist in engine处理

从数据表热复制说起。

在执行特别慢的语句时,mysql经常会锁表。这时如果想并行执行另一个语句,但表被锁而该语句只能排队。这种情况下,希望能将被锁的表复制个副本,就可以“假”并行执行;然而杀死前语句又太可惜。所以,运行中热复制的技巧(奇技淫巧)还是有用的。

对于MyISAM表,直接复制三个文件到另一数据库中,即时生效,很方便。为了稳妥起见,最好先检查表看是否有异常;有时会因为写入而提醒表损坏,repair table 修复一下就好。

但对于InnoDB表,就要复杂一些。首先,

step-0) 确保已通过MySQL服务的匹配文件,启用单文件选项 innodb_file_p[……]

继续阅读

C语言踩坑流水帐

语法与语言本身

todo

一些函数

scanf

scanf(“%s”,str) 并非想象那样把一个完整的字符串读取到str,比如包括空格字符的一句话;事实上,只要有空格就会终止。所以,不要指望用它从stdin中按行读取;可以使用fgets()实现读行,但注意它会带上行尾换行符。

 

 [……]

继续阅读

SQL计算用户留存率,原理及流程拆解

问题及分析

根据用户记录,按一定时间周期,计算用户留存量、留存率。

留存率 = 留存量 / 初始量 * 100%

从某一个时间段作为起点,作为初始用户,一年后这些用户还有多少,两年后还有多少… 以此即可做计算。这里有个问题,就是这个起点的用户,是否也是从更早以前即存在、并留存到现在的;如果把本身即是“留存”而来的,留存率是不准确的。所以,通常要以用户首次出现开始计算。

简单来说,就是从新用户开始,计算其N一个时间段后留存;而每个时间段,都有新用户,所以这是个斜三角形的表。

以客户的销售记录为例,分步拆解计算原理。

已有原始数据表,包含了每个客户的销售记录,包括销售时[……]

继续阅读

postgres中执行DELETE … LEFT/RIGHT JOIN

问题:有两张表 users, addrs,需要从users表中删除一些行,条件为在“addrs”表中没有对应id的行。

事实上很简单,只是个left join查询,SELECT a.*,'|' s,b.* FROM users a LEFT JOIN addrs b ON a.id=b.id;,预览如下:

然而,postgres本身不支持 DELETE … LEFT JOIN … 这样的语句,这点不像MySQL那样方便。

有一个曲线救国方法:

把上面LEFT JOIN的结果表视为一张中间表,把原users表、按主键 inner join[……]

继续阅读

wordpress站点安全设置

这也是一篇草稿了好几年的文章,一时半会儿也不大可能继续完善了

wordpress本身安全性,可以通过安装一些插件实现,

Akismet,

防垃圾评论

Disable XML-RPC-API,

禁用xmlrpc协议的一些api,减少针对 xmlrpc.php 的攻击。其中:

Security Settings: 4个选项全部启用,尤其第一个默认未开启”Disable JSON REST API” 推荐打开,

Limit Login Attempts Reloaded,

防止暴力登录尝试。推荐允许重试4次,把拦截时间设置成60分钟或更长时间

Cron Events

管理[……]

继续阅读

Python模块lxml使用

xpath解析html文档

从字符串解析HTML文档,返回根节点

lxml.etree.HTML(text, parser=None, base_url=None)

Parses an HTML document from a string constant. Returns the root node (or the result returned by a parser target). This function can be used to embed “HTML literals” in Python code.

To override the parser with a diff[……]

继续阅读