Regex使用的一点理解

这两天在弄Regex,发现自己获得不少的新知识

 

 Regex r  =   new  Regex( @" [0-9a-z]{3,5} " );
ExpandedBlockStart.gifContractedBlock.gif            
string [] tests  =   {"abc""123456""(aa22bb33)""ab"} ;
            
foreach  ( string  test  in  tests)
ExpandedBlockStart.gifContractedBlock.gif          
{
                
if (r.IsMatch(test))
ExpandedSubBlockStart.gifContractedSubBlock.gif                

                    Response.Write(test);
                    Response.Write(
"<br/>"); 
                }

                
else
ExpandedSubBlockStart.gifContractedSubBlock.gif               
{
                   Response.Write(
"没有匹配的项");
                }

            }

结果是:

abc
123456
(aa22bb33)
没有匹配的项

这里的一个问题是:[2]{3,4}表示字符串中要出现连续的2的次数为3到4次,像34322sf是符合的,但是像34532222saf也是符合的字符串哦,因为后面的多余的2是不影响的,他已经满足了要求了就不用看后面的2了

但是这里还有一个问题:[0-9a-z]{3,4}表示字符串中出现的字符在0-9或者a-z中的次数为3到4次,而不是要相同的字符出现3到4次,这里的{}表示前面的Regex而不是结果,注意理解哦

 

 Regex r2  =   new  Regex( @" <img\s[\w/=.]+[\s]*/> " );
        Match m 
=  r2.Match( " panjunsjdfsi<img src=image/logo.jpg />sfiwe " );
        
if  (m.Success)
ExpandedBlockStart.gifContractedBlock.gif        
{
            Response.Write(m.Index);
            Response.Write(m.Value);
        }

 

这个正则表达式还是有点好的,在从数据库中读取图片是很好的一个方法

其实以/>结尾后面不要加$,因为那个是字符的,而这里不是字符串,在字符串中要注意的特殊字符是

/ = : .

这几个字符串是要原型表示的

 

Regex r2  =   new  Regex( @" (\w+)://([^/:]+)(:d*)?([^# ]*) " );
        Match m 
=  r2.Match( " panjuns http://www.baidu.com:8080/panjun jdfsgunsjdfe " );
        
if  (m.Success)
ExpandedBlockStart.gifContractedBlock.gif        
{
            Response.Write(m.Index
+"<br/>");
            Response.Write(m.Value);
            Regex r3 
= new Regex(@"(w+)+.+(\w+.(com.cn|net.cn|com|cn|net|org))");
            Match m2 
= r3.Match(m.Value.ToString());
            
if (m2.Success)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                Response.Write(m2.Index 
+ "<br/>");
                Response.Write(m2.Value);
            }

        }

 

这个是用来查找域名和url的,具体的我就不解释了……

 

 System.Text.RegularExpressions.Regex r  =   new  Regex( @" ^\d+$ " );
        System.Text.RegularExpressions.Regex r2 
=   new  Regex( @" ^-\d+$ " );
ExpandedBlockStart.gifContractedBlock.gif        Int32[] ints 
= -11,11,243,-65435,-23 } ;
        
foreach  (Int32 myint  in  ints)
ExpandedBlockStart.gifContractedBlock.gif        
{
            
if (r.IsMatch(myint.ToString()))
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                Response.Write(myint.ToString() 
+ "<br/>");
            }

            
else
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                Response.Write(
"没有匹配的项<br/>");
            }

        }

        Response.Write(
" <hr/> " );
        
foreach  (Int32 myint  in  ints)
ExpandedBlockStart.gifContractedBlock.gif        
{
            
if (r2.IsMatch(myint.ToString()))
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                Response.Write(myint.ToString() 
+ "<br/>");
            }

            
else
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                Response.Write(
"没有匹配的项<br/>");
            }

        }

 

以上是一些小的Regex东西,我要慢慢的进步……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值