VisualStudio中的正则表达式的用法举例 以及 个人观点(建议不用)

  •   第一部分     练习:


1) 我测试的通配符

http://msdn.microsoft.com/zh-cn/library/afy96z92(VS.80).aspx    参考了这篇MS的文档

~?*()        //成功找出所有的析构函数(共22个).


2) 我测试的正则表达式

~.*()            //列出所有的行
~:i()        //同上,但要慢多了;  匹配表达式 等效于 ([a-zA-Z_$][a-zA-Z0-9_$]*) 所以明显不对! 因为$代表行尾的意思.

/~:a/(/)    // 没查出任何东西!!! 

/~:a*/(/)    // 找出全部析构函数(22个).

/~.*/(/)    // 找出全部析构函数(22个).


 3) 下面这个例子是网上看到的别人的:

http://www.cnblogs.com/xianyun/archive/2006/06/16/427823.html     

    eg.          DBAssist.ToInt32(p_dtrSource["QCBATCH_SEQ_INT"])
         转换成
                 p_dtrSource["QCBATCH_SEQ_INT"].ToString()

    只需要在查找/替换中【记得选中查找选项中的使用-> 正则表达式】输入:

    正则表达式:  {DBAssist.ToInt32/(} {.*}  {/)}
        替换为:   /2.ToString() 

    解释:括号内为标记表达式,第一个就是 /1
          /2.ToString() 就是保留{.*}匹配的值,在加上.ToString()

    就一个表达式完成了我 N 处函数的替换!
   

  •   第二部分     语法对比:


1) 下面是VS2005中的语法: 

http://msdn.microsoft.com/zh-cn/library/2k3te2cs(VS.80).aspx    上边的链接上给出了语法说明.

   下面这个是我试用时遇到的一个觉得不符合一般正则表达式的一个:

禁止匹配:
~(X)     当X出现在表达式中的此位置时禁止匹配。例如,real~(ity) 匹配“realty”和“really”中的“real”,而不匹配“reality”中的“real”。


 2)  下面是正规的/通用的语法( 在linux/unix中的 vi, sed, awk, grep 等等都能见到 ):  

代码/语法     说明
*     重复零次或更多次
+     重复一次或更多次
?     重复零次或一次
{n}     重复n次
{n,}     重复n次或更多次
{n,m}     重复n到m次


  可见,  VisualStudio中的用法有点不守常规约定的意思.  



   结论:    VisualStudio中还是少用、不用它的正则表达式为好(不想和gvim,awk等搞混的话) :)

         用用它的通配符就算了吧.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值