===============================
以下内容为基础部分
===============================
正则表达式的使用和理解分为几个部分
1、文字描述 元字符
当纯英文的环境下,针对ascii编码,每一个元字符的描述只面向一个字节
通用的描述方式为
例如:
数字[0-9]: 表示 匹配一个字符,这个字符为ascii '0'-'9'之间,总共有9个可能性
同样还有小写字母[a-z]
大写字母[A-Z]。
[x129]表示x或者x或者1或者2或者9,四个可能性
正则表达式提供了一整套表达式体系,例如:
.任意非换行
\n换行
\s空格或者tab
\w字母或者数字
\d数字
\b单词开始或者结束
^字符串开始
$字符串结束
所有的正则表达式底层都是这么匹配的 需要注意的是因为包括()\在内,很多字符被正则表达式用来做格式说明,所以在匹配这些字符的时候需要用\来转义 。主要是 ()\{}[]|*+这几个 例如\\表示匹配ascii '\'
2、数量限定
我们有了解到正则表达式匹配一个字符的表示方法。那么接下来就是需要处理多个元字符的组合的问题
通用表达方式为
{n} n次
{n,m} n-m次
{n,} n次或者更多
其中常用表述规定为:
*任意次数 {0,}
+一次或更多 {1,} 默认贪婪搜索
+? 一次或更多 默认非贪婪搜索,搜索到第一个满足条件的就退出
3、查找替换
()表示一次匹配条件
$1-$999 表示一次匹配结果
后续接着写
参考资料
http://www.cnblogs.com/mainz/archive/2009/03/14/1411359.html
自用收录
------------------------需求1-----------------------
需求:将keil的map文件更改为\t 在excel中查看
查找:\x20+(\w)
替换为:\t$1
------------------------需求2------------------------
需求:字库取模工具生成的字库方向不对... 手动调换顺序:
规则: uint8_t src[16] 转换为uint16 target[8]
其中 target[0] = src[0]<<8+src[8]
target[1] = src[1]<<8+src[9]
......
target[7] = src[7] <<8+src[15]
举例:
将
0x00,0x00,0x1F,0xCC,
替换为
0x0000,0x0000,0x1FCC,0x0000
正则:
查找:
0x([a-fA-F\d]{2}),0x([a-fA-F\d]{2}),
替换为:
0x$1$9,0x$2$10,0x$3$11,0x$4$12,0x$5$13,0x$6$14,0x$7$15,0x$8$16,
那画面太美~ 386行 一下就换完了
如果有更好的办法...请留言 我感觉重复有点多...