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;   //这样就得到想要的结果了.

  • 相关阅读:
    SVN服务器搭建(一)
    排序算法二:冒泡排序
    【LeetCode】136. Single Number
    【LeetCode】217. Contains Duplicate
    【LeetCode】189. Rotate Array
    【LeetCode】122. Best Time to Buy and Sell Stock II
    【LeetCode】26. Remove Duplicates from Sorted Array
    【LeetCode】20. Valid Parentheses
    【LeetCode】680. Valid Palindrome II
    【LeetCode】345. Reverse Vowels of a String
  • 原文地址:https://www.cnblogs.com/beyond1983/p/2863918.html
Copyright © 2011-2022 走看看