zoukankan      html  css  js  c++  java
  • C#正则表达式(2):常用的特殊字符(元字符,限定字符)

    正则表达式中的限定符和元字符:

    元字符就是它是一个特殊的字符,可以代表某个字符或某一类字符.限定符就是指某个字符出现的次数

    特殊字符
    意思
    例子
        \

    跟字符串的转义字符一样,它也用来转义的.

    比如$是个特殊的字符.要匹配$的话就得用\$
    ^ 匹配字符串的开头位置 ^a匹配arwen.但不匹配barwen.
         $
    匹配字符串的末尾位置 en$匹配arwen.但不匹配arwenb.
          *
    匹配前面的字符0次或多次 a*rwen,表示字母a出现0次或多次.可以匹配rwen或aaarwen.
    + 匹配前面的字符1次或多次 a+rwen表示字母a出现1次或多次.但不能是0次.可以匹配arwen或aarwen.但不能匹配rwen.
    ? 匹配前面的字符0次或1次 a?rwen,表示a出现0次或1次.可以匹配arwen或rwen.但不能匹配aarwen.
    {n} 匹配前面的字符恰好是n次,其中n是整数 ar{2}wen可以匹配arrwen.但不能匹配arwen或arrrwen.
    {n,m}

    匹配前面的字符至少是n次,最多是m次.如果写成

    {n,}表示最少匹配n次.没有上限.

    ar{1,2}wen可以匹配arwen,arrwen.但不匹配awen或arrrwen.
    .

    点号,匹配除换行以外的任意单个字符.换行符用\n表示

    arw.n.可以匹配arwen,arwin.但不能匹配arween或arwn.
    \w 匹配字符或数字,下划线,汉字  
    \d 匹配数字  
    \s 匹配任何空白字符 貌似回车符\r和换行符\n也被算作空白字符.
    \b 匹配单词的开关或结尾 这个要和^,$匹配字符的开关和结尾区分下.我们是把空格隔开的一串字符当作一个单词.但字符串是整个的一长串字符
         
      注意:

    特殊字符都区别大小写的,上面的字符全部是小写

    表示反义的字符

    上面说的字符都是小写的.有些对应的大写字符就表示相反的意思

    \W匹配何意不是字母,数字,下划线,汉字的字符.

    \S匹配任意不是空白的字符

    \D匹配任意不是数字的字符

    \B匹配不是单词开始或结束的位置

    小括号,中括号

    中括号:[] ,它表示里面的字符任选一个

    比如[abcd]+,就表示abcd这四个字母任意的一个出现1次或多次

    小括号()和|结合表示任选一个,其实和[]类似,只不过[]只能任选一个字母,()可以任选一个字符串

    (abc|def)+表示abc或def这两个字符串中的任一个出现一次或多次.

    另一个是^,在上面提到它表示字符串开头,但要把它放到[]中就取反的意思了.

    所以^a是匹配a在字符开头.而[^a]匹配不是字符a的任意字符

    还有在[]中用个连接符-表示取值范围[0-9]表示0到9的任意一个数字[a-z]表示任意小写字母中的一个

    上面说了这么多规则,那具体怎么用呢,其实用起来很简单,难的是你怎么把上面的规则组合起来实现你想要的条件

    还用之前的例子来说,比如从字符串中提取网址

    string str ="ahttpp://www.baidu.com/s?tn=sitehao12";   //待提取的源字符

    string pattern = @"w{3}\..*\.com";        //这里就是用上面的规则来表达条件.w就表示字母w,如果加个\变成\w表达的意思就不一样了,表示数字,字母,下划线,汉字了

    //然后w{3}表示连续出现3次w字母 \.就表示点号.注意如果前面没有@则要表示成\\.反正最好记得每次在寡不字符串前加个@就不用就考虑再给\转义了啊.

    //.*就表示除换行符以外的任意字符出现0或多次 \.表示点号 com就表示字符com

    string needStr = Regex.Match(str,pattern).Value;   //这样就得到想要的结果了.

  • 相关阅读:
    红外应用
    电池分类及特点
    温湿度传感器AM2302(DH22)
    lora
    跳频扩频技术学习
    STM32F4/F7运算性能
    物联网相关模块
    DC-DC芯片
    外部引用CSS中 link与@import的区别
    超酷实用的jQuery焦点图赏析及源码
  • 原文地址:https://www.cnblogs.com/beyond1983/p/2863918.html
Copyright © 2011-2022 走看看