Heim  >  Artikel  >  Backend-Entwicklung  >  正则表达式中”+“,”*“,”.“在 []以内和以外有什么区别? 非转义

正则表达式中”+“,”*“,”.“在 []以内和以外有什么区别? 非转义

WBOY
WBOYOriginal
2016-06-06 20:07:441193Durchsuche

例如:

<code>[\w.]+和[\w.+*?]

</code>

这些符号在[]里面与外面有什么区别?

回复内容:

例如:

<code>[\w.]+和[\w.+*?]

</code>

这些符号在[]里面与外面有什么区别?

首先正则表达式[]里面的内容代表可选组合的意思,
类似

<code>/[\w.]/.test("a"); // true
/[\w.]/.test("."); // true
/[\w.]/.test("a."); // true
/[\w.]/.test(" "); // false</code>

上面的正则表达式可选组合中可以匹配一个字符,或者一个点号,但是不能匹配空字符;

说说区别:
1..[]里面的时候,它就是为了匹配.的,在外面的时候它用来匹配任意字符的,见下面这个示例:

<code>/./.test(" "); //true
/[.]/.test(" "); //false</code>

2.*+[]外面被称为量词(数量词的量词),是表示要匹配的数量的,
*表示任意数量,集合表示是[0, +00);
+表示至少1次,集合表示是[1, +00);
不得不说的是,作为量词时,*+前面必须跟着匹配含义的正则表达式(部分);
[]内就表示它本身的意义了,为了匹配*或者+

<code>/[+]/.test("+"); //true
/+/.test(""); //Uncaught SyntaxError: Invalid regular expression: /+/: Nothing to repeat(…)
/.+/.test("oops"); //true</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn