Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于Javascript的正则表达式_Javascript_Regex - Fatal编程技术网

用于Javascript的正则表达式

用于Javascript的正则表达式,javascript,regex,Javascript,Regex,我正在学习一些基本的Javascript正则表达式。作为初学者,我阅读了文档和这个问题: 我想我已经破译了大部分的表达: /(?:^|\s)format_(.*?)(?:\s|$)/g 除本部分外: (.*?) 我知道 .* 匹配除换行符或换行符外的任何字符的0个或多个匹配项 但我不明白为什么 ? 这是需要的 我在玩类似的东西: /(?:^|\s)ab(.*?)ab(?:\s|$)/ ' ab4545ab ' 不管有没有这种情况,情况都是一样的 ? 在 有什么想法吗 谢谢 它使。*

我正在学习一些基本的Javascript正则表达式。作为初学者,我阅读了文档和这个问题:

我想我已经破译了大部分的表达:

/(?:^|\s)format_(.*?)(?:\s|$)/g
除本部分外:

(.*?)
我知道

.*
匹配除换行符或换行符外的任何字符的0个或多个匹配项

但我不明白为什么

?
这是需要的

我在玩类似的东西:

/(?:^|\s)ab(.*?)ab(?:\s|$)/
' ab4545ab '
不管有没有这种情况,情况都是一样的

?

有什么想法吗

谢谢

它使。*不贪婪。这意味着正则表达式中下一个有效字符序列的第一次出现将停止。*

如果没有?,.*将一直使用到正则表达式中下一个有效字符序列的最后一次出现

var s = "foo bar boo bar foo";

var greedy = /.*bar/;
var no_greed = /.*?bar/;

greedy.exec(s); // foo bar boo bar

no_greed.exec(s); // foo bar
所以贪婪的人会从第一个吧台到最后一个吧台

非贪婪只进入第一个栏。

它使。*非贪婪。这意味着正则表达式中下一个有效字符序列的第一次出现将停止。*

如果没有?,.*将一直使用到正则表达式中下一个有效字符序列的最后一次出现

var s = "foo bar boo bar foo";

var greedy = /.*bar/;
var no_greed = /.*?bar/;

greedy.exec(s); // foo bar boo bar

no_greed.exec(s); // foo bar
所以贪婪的人会从第一个吧台到最后一个吧台

非贪心的只会进入第一个栏。

?在.+或.*匹配之后,将使匹配变为懒惰,而不是默认的贪婪。也就是说,它将匹配尽可能少的字符,而不是尽可能多的字符

例如:

"hello".match(/.+/)    //Returns ["hello"]
"hello".match(/.+?/)   //Returns ["h"]
那个?在.+或.*匹配之后,将使匹配变为懒惰,而不是默认的贪婪。也就是说,它将匹配尽可能少的字符,而不是尽可能多的字符

例如:

"hello".match(/.+/)    //Returns ["hello"]
"hello".match(/.+?/)   //Returns ["h"]
那个?使量词不发音。如果没有它,*将吃掉尽可能多的字符,这在..中尤其强大。。但是,有什么??在那里,它会吃尽可能少的食物

以这个字符串为例:abcccbacba,并将其与/abc.*.ba/匹配。这将导致捕获ccbac。另一方面,/abc.*?ba/将捕获cc.

的?使量词不发音。如果没有它,*将吃掉尽可能多的字符,这在..中尤其强大。。但是,有什么??在那里,它会吃尽可能少的食物


以这个字符串为例:abcccbacba,并将其与/abc.*.ba/匹配。这将导致捕获ccbac。另一方面,/abc.*?ba/将捕获cc.

在该上下文中,问号意味着进行惰性匹配。一定要阅读此-很棒的教程、有用的示例和所有要点:,尤其是@Joanna:感谢这些链接。他们帮了很多忙。在阅读了答案后,我仍然感到困惑,但当然他们都会为我指明正确的方向,但在阅读了你的链接后,他们都有意义。我希望你能将此作为一个答案发布。在这种情况下,问号意味着做一个懒散的匹配。一定要阅读此-很棒的教程,有用的例子和所有要点:,尤其是@Joanna:感谢这些链接。他们帮了很多忙。在阅读了答案后,我仍然感到困惑,但当然他们都会为我指明正确的方向,但在阅读了你的链接后,他们都有意义。我希望你能把这个贴出来作为答案。