规则表达式regex的posix标准,gnu扩展以及兼容性问题
regex(Regular Expression)的posix标准是unix平台共同遵守的,而gnu对regex做了大量扩展,使regex更好用,但不是所有的平台都支持gnu扩展。
Mac OS X平台就只支持posix标准而不支持gnu扩展,因此使用gnu扩展的脚本在Mac OS X平台上运行时就会遇到兼容性问题。
比如匹配所有空白字符的\s
就是gnu扩展,如果要在Mac OS X上匹配所有空白字符要使用[[:space:]]
。
下面是几个常见的GNU扩展对应的posix表达:
\w - [[:alnum:]_]
\W - [^[:alnum:]_]
\s - [[:space:]]
\S - [^[:space:]]
更多详细信息见参考文档。
References:
[1]POSIX Basic Regular Expressions
[2]POSIX Bracket Expressions
[3]GNU Regular Expression Extensions
[4]Regular Expressions Reference Sheet
===
[erq]
Untitled Post - 77
jessie源里的rdesktop升级到1.8.2,参数-E不再适用,也就是不能禁止客户和服务器之间的连接加密,否则无法正常使用rdesktop.
Untitled Post - 75
python经典的图像处理库叫Python Imaging Library (PIL),but当前并不支持python 3,并且已经几年没有更新了。不过有一个fork版本叫Pillow支持python 3,并且开发活跃。debian官方源里的python3-pil包即是Pillow。
Untitled Post - 74
openlayers 3 is released! ol3’s homesite change to http://openlayers.org/
Untitled Post - 73
import module后,可以使用module.__file__查看模块源文件所在路径,dir(module)查看模块导出的符号 — Python
Mac OS X版金山快盘同步路径更改为英文
金山快盘应该出个英文版
Untitled Post - 72
python里没有递增运算符++
和递减运算符--
,还好可以使用+=
和-=
运算符。
Untitled Post - 71
Python的条件表达式或叫三元操作符与其他语言有很大的不同,其格式为: result_while_condition_is_true if condition else result_while_condition_is_false,如果condition为True,整个条件表达式的值为result_while_condition_is_true,否则整个条件表达式的值为result_while_condition_is_false