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

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

WBOY
WBOYOriginal
2016-06-06 20:07:441234browse

例如:

<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>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn