正则表达式点滴

发表于:2007-05-26来源:作者:点击数: 标签:
一些正则表达式的基础东西。。。 1:匹配确定数量的字符:\ 例如:X\ 匹配1到10个X [A-Za-z]\ 匹配4到7个字符长的一个字母表序列 如果括号内只有一个数字,如: \则表示前导的正则表达式必须被精确匹配10次。 例如:[a-zA-Z]\ 精确匹配7个字母表中的字符 2:

一些正则表达式的基础东西。。。

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就可以轻松搞定。

原文转自:http://www.ltesting.net