我知道这是一个至少包含1个数字的4-8个字符的串,我想知道它具体结构的意义。
先谢谢了

解决方案 »

  1.   

    (?=pattern)  
    正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 .  
    匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。 *
    匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。 \d  匹配一个数字字符。等价于 [0-9]。 {n,m}  
    m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
      

  2.   

    你给的其实我也看过,但是我对(?=pattern) 很不明白
    比如说^(?=.*\d).{4,8}$我以为是(4-8个字符,其中要包括一个数字),但是为什么一定要包含1sss(即一个数字开头的至少4个字符的子串呢)?