一些正则表达式的基础东西。。。 1:匹配确定数量的字符:\ 例如:X\ 匹配1到10个X [A-Za-z]\ 匹配4到7个字符长的一个字母表序列 如果括号内只有一个数字,如: \则表示前导的正则表达式必须被精确匹配10次。 例如:[a-zA-Z]\ 精确匹配7个字母表中的字符 2:保存匹配的字符集:\(...\) 例如:^\(.\) 匹配行上的第一个字符,然后保存到寄存器1中。 要得到保存到特定寄存器中的字符可以用\n, n可以从1-9,表示1到9,9个寄存器。 再举两个例子来巩固一下: i) ^\(.\).*$ 匹配所有首字符和最后一个字符相同的行 ii) 假设有如下电话簿文件 Alice Chebba 973-555-2015 Barbara Swingle 201-555-9257 Liz Stachiw 212-555-2298 Susan Goldberg 201-555-7776 Tony Iannino 973-555-1295 则运行语句:1,$s/\(.*\) \(.*\)/ / 就可以把每条记录的姓名和号码位置互换,文件就变成下面的样子 973-555-2015 Alice Chebba 201-555-9257 Barbara Swingle 212-555-2298 Liz Stachiw 201-555-7776 Susan Goldberg 973-555-1295 Tony Iannino 要在windows的编辑器中实现上面的功能,我还找不到好的方法,而在UNIX/LINUX下 只要用小小的行编辑器ed就可以轻松搞定。 |