正则表达式速成


===============================

以下内容为基础部分

===============================

正则表达式的使用和理解分为几个部分


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行 一下就换完了

如果有更好的办法...请留言 我感觉重复有点多...

相关文章

一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^d{n}$ 3 至少n位的数字:^d{n,}$ 4 m-n位的数字...
正则表达式非常有用,查找、匹配、处理字符串、替换和转换字符串,输入输出等。下面整理一些常用的正则...
0. 注: 不同语言中的正则表达式实现都会有一些不同。下文中的代码示例除特别说明的外,都是使用JS中的...
 正则表达式是从信息中搜索特定的模式的一把瑞士军刀。它们是一个巨大的工具库,其中的一些功能经常...
一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数...
\ 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n...