正则表达式的“|”元字符,分两边,是凭什么规则分的,比如
string regx = (.*)小张|小李;“|”符号右边我知道是“小李”,左边呢?是小张,还是(.*)小张,是在哪两部分取或?
规则是怎么样的?

解决方案 »

  1.   


    参考正则表达式学习参考
    中的
    2.2.7  分支结构(Alternation)
      

  2.   

    好久没看自己写的东西了,忽然发现分支结构还有些内容是需要交待的other1a1|a2|a3other2  由于没有()限制,"|"的作用范围即为左右两侧整体,也就是other1a1,a2,a3other2这三个分支
    other1(a1|a2|a3)other  由于有()限制,"|"的作用范围在()内,也就是a1,a2,a3这三个分支,other1和other2不在这个分支结构作用范围内分支结构尝试匹配的顺序是从左往右的,当遇到一个分支匹配成功后,就不再向右尝试,所以如果使用时遇到包含与被包含关系时,被包含的应该放在左边,否则将永远匹配不到
    (\w+|\d+)  由于\w是包含\d的,所以\d+这个分支,将永远匹配不到