首页 > js正则的小问题

js正则的小问题

/#+?\w+/

#后面有两个修饰符,+代表一个或多个,?表示0个或一个,我想问+和?都是修饰#吗?还是说修饰符也可以用来修饰 修饰符,即?修饰+号


+?好像是用来将贪婪匹配改成非贪婪的吧。


谢谢解答。网上找了资料看了下,简单总结:
正则表达式的贪婪与非贪婪匹配

  如:

String str="abcaxc";

    Patter p="ab*c";

  贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab*c)。

  非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab*c)。

编程中如何区分两种模式

  默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。

  量词:

{m,n}:m到n个

     *:任意多个

     +:一个到多个

     ?:0或一个

+?就是最少匹配原则(非贪婪模式)

【热门文章】
【热门文章】