(?is)后面的匹配将忽略大小写,特殊字符.匹配任意字符包括换行符?
^在正则里的意思是以^开头还是是非的意思呢?一直搞不明白
求解!

解决方案 »

  1.   

    我用Regex Tester测试了下
    例如有个字符串abcsefg
    如果是^a 匹配后就只得到一个 a
    如果是[^a]匹配后得到bcsefg在[^a]里的的意思是非a
    然后如果没有在[]里的意思就是以a开头
    是这个意思吗?还有帮我在解决下第一个问题
    我说的正确吗?
    谢谢大家不吝赐教
      

  2.   

    ^ 匹配一行的开始。例如正则表达式^When in能够匹配字符串"When in the course of human events"的开始,但是不能匹配"What and When in the"
    [] 匹配括号中的任何一个字符。例如正则表达式r[aou]t匹配rat、rot和rut,但是不匹配ret。可以在括号中使用连字符-来指定字符的区间,例如正则表达式[0-9]可以匹配任何数字字符;还可以制定多个区间,例如正则表达式[A-Za-z]可以匹配任何大小写字母。另一个重要的用法是“排除”,要想匹配除了指定区间之外的字符——也就是所谓的补集——在左边的括号和第一个字符之间使用^字符,例如正则表达式[^269A-Z] 将匹配除了2、6、9和所有大写字母之外的任何字符。
      

  3.   

    (?is)是什么意思呢?
    还有(?i)
    为什么前面要个?号呢?
    ?不是匹配0次或1次,前面没有什么可以匹配的不是会错吗?
      

  4.   

    (?i):指定不区分大小写的匹配
    (?is):指定不区分大小写的匹配,指定单行模式
      

  5.   

    (?is)后面的匹配将忽略大小写,特殊字符.匹配任意字符包括换行符?
    ^在正则里的意思是以^开头还是是非的意思呢?
    --------------------------------------------------------
    (?ismn)表示模式
    i:忽略大小写
    s:单行模式,表示.可以匹配回车换行,^表示所有文本的开头
    m:多行模式,.不可以匹配回车换行,^表示每行的开头
    n:取消隐式分组,只有命名分组被认为是分组。不同请款不同意思的。在[]中间,表示反,[^a]表示a以外的任何都可以匹配。[^\d]为非数字的所有匹配。
    ^在[]外,表示段落开始,但并不一定是所有文本的头。
    比如这样一段文本:afdafdas
    fdasfda
    fasfasfasfdasf
    dasfasfasfda
    sfasfdas^.+
    将捕获afdafdas,因为^表示文本的开始,而afdafdas再往后,就有\r\n了,就不是字符不符合.了。
    如果用单行模式
    (?s)^.+
    将捕获所有文本,.可以捕获回车换行以及其他所有字符,尽可能多的匹配(贪婪匹配)
    (?m)^.+
    将分别有5个捕获结果,每行都可以捕获。因为多行模式,^此时匹配行首,.不能匹配回车换行。更详细的你看过客的博客吧:
    过客的博客或是过客层推荐的:
    DEELX 正则表达式语法
      

  6.   

    加点分在问个问题!
    为什么有的要在前面加个?号呢
    例如(?<src>这样的,
    为什么要在前面加个?号呢?
      

  7.   

    (?<src>) 把捕获的内容命名为src,并压入堆栈(Stack) 
      

  8.   

    你看看给你的连接把。重新换一个措辞给你说一边,不如你直接看文章了。都有介绍的
    (?<src>)
    这叫命名分组
    (?<src>aaa)
    捕获aaa,创建堆栈保存分组信息,在结果:Match的Groups中可以用分组名访问到结果
    Match m = Regex.Match("aaabbbccc","(?<src>aaa).+");
    m.Value就是整体所有字符串
    m.Groups[1].Value就是第一个分组aaa
    m.Groups["src"].Value也是第一个分组,因为你给第一个分组命名为src了,就可以这样访问。只有.net支持命名分组,js,php均不支持。
    .net下的命名分组不只是为了好看,在(?n)的模式下,隐式分组(非命名分组)将被忽略,只认为是整体捕获,而不装入分组堆栈。
    Match m = Regex.Match("aaabbbccc","(?n)(?<src>aaa)(bbb).+");
    这里依然只有分组src,后一个(bbb)被认为是整体捕获而不保存为分组捕获结果。还是那句话,囧
    你看看给你的连接把。重新换一个措辞给你说一边,不如你直接看文章了。都有介绍的
      

  9.   

    http://zzk.cnblogs.com/s?w=%E6%AD%A3%E5%88%99