ELisp编程十一:正则表达式一
来源:互联网 发布:如何在淘宝上买盗版书 编辑:程序博客网 时间:2024/05/17 23:43
使用re-builder交互式使用正则
比如buffer中有一个字符串
abcd 3
运行命令:
M-x:re-builder
会出现一个小buffer,在双引号里面输入正则表达式d ,上面有字符串的buffer马上高亮d字符,如果输入3,则高亮3字符。
特殊字符
参考文档:
http://www.gnu.org/software/emacs/manual/html_node/elisp/Regexp-Special.html#Regexp-Special
'.' 代表任意一个字符(除了换行符),因此"a.c"能够匹配abcd 3中的abc
'*' 代表前面的字符(串)可以重复>=0次
如果*用在最前面,只能代表是普通字符,同样情况适用于+和?,一句话,特殊字符如果用在不可能出现的场合,只能被当作普通
字符
'+' 代表前面的字符(串)必须出现至少一次
比如"bc+d"匹配上面的字符串abcd 3
'?' 代表前面的字符(串)出现一次或者0次
'^' 匹配字符串开头
'&' 匹配字符串结尾
[...] 里面可以包括若干字符,只要匹配其中之一即可
比如字符串abcd 3 ab
用正则"[bc]",匹配到三个,分别是b c 和最后一个b
[^...] 表示不能是[]里面包含的任何字符
\ 代表后面的特殊字符在这里只是普通字符
注意,如果要匹配字符串中的\字符,需要四个\,比如:abcd 3 ab\ ef
正则表达式写法:"\\\\"
首先因为ELisp字符串写法中,双引号里面的\不显示,要想显示出来必须是两个\
然后正则表达式语法中\是特殊字符,\\才能表示一个\,
因此"\\\\"就是代表逻辑上的正则表达式"\\",因此也就匹配了字符\
'*?' '+?' '??' 和'*' '+' '?' 功能相近,只是非贪婪匹配,只匹配最合适的一个。
- ELisp编程十一:正则表达式一
- ELisp编程十二:正则表达式二
- ELisp编程十三:宏一
- ELisp编程一:运行elisp的各种方式
- ELisp编程一:运行elisp的各种方式
- DOM编程之十一--正则表达式三
- Elisp 编程
- ELisp编程九:循环
- shell 编程(一)之 正则表达式
- DOM编程之九--正则表达式一
- 正则表达式规则(十一)
- ELisp编程四:文件操作
- ELisp编程六:定义变量
- ELisp编程七:创建函数
- ELisp编程八:条件语句
- ELisp编程十:求最大值
- ELisp编程十三:宏二
- ELisp编程十四:宏三
- javascript中浮点型数字的运算精度
- arx 自定义实体简单实例
- linux 的启动执行脚本 (+oracle)
- 经典心理学效应
- CRUD for table pwr_user continue 2
- ELisp编程十一:正则表达式一
- 实现URL编码解码的python程序
- 云端的迷失-2012年5月江西IDC排行榜
- 控制文件中的 MAXDATAFILES 参数
- Android提高十八篇之自定义Menu(TabMenu)
- linux文件操作
- 纪念我的iriver T7
- Python小技巧 - 子串查找
- system verilog ,verilog,system C, VHDL,matlab等功能比较 《图》