Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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,我有这样一个字符串: "resourceType": "com.bmc.arsys.rx.services.view.domain.ContainerViewComponentDefinition", 我想匹配本部分中的第一个双引号: "resourceType": 所以我构造了一个regexp来查找,然后是一个或多个字符,后跟:literals,所以我有第一部分: ".+? 然后我想添加正向前瞻部分?=: 但我发现语法错误。组合它们的语法是什么?要匹配引号之间的任何内容,可以这样做。你不

我有这样一个字符串:

"resourceType": "com.bmc.arsys.rx.services.view.domain.ContainerViewComponentDefinition",
我想匹配本部分中的第一个双引号:

"resourceType":
所以我构造了一个regexp来查找,然后是一个或多个字符,后跟:literals,所以我有第一部分:

".+?
然后我想添加正向前瞻部分?=:


但我发现语法错误。组合它们的语法是什么?

要匹配引号之间的任何内容,可以这样做。你不需要积极地展望未来。
.+:

要匹配引号之间的任何内容,可以这样做。你不需要积极地展望未来。
.+:

您可以使用消极和积极的前瞻

".+?(?=")
var str='resourceType:com.bmc.arsys.rx.services.view.domain.ContainerViewComponentDefinition';
console.logstr.match/\w+?=/[0] 你可以使用消极和积极的前瞻

".+?(?=")
var str='resourceType:com.bmc.arsys.rx.services.view.domain.ContainerViewComponentDefinition';
console.logstr.match/\w+?=/[0] 这个简单的应该适合你的需要:[^]+

这个简单的应该适合你的需要:[^]+

这就是你需要的。使用前瞻组。该组是前瞻语法的一部分

".+?(?=")
这里有一个很好的链接来描述前瞻


更新:删除无关的建议,在解释中添加注释。

这是您需要的。使用前瞻组。该组是前瞻语法的一部分

".+?(?=")
这里有一个很好的链接来描述前瞻


更新:删除无关的建议,在解释中添加注释。

这就是您要找的吗?+=这就是你要找的吗?+=谢谢,所以不使用组就不能组合?是的。regex语法有一些限制。此外,regex实现之间也存在差异。您使用的是GNU/Linux工具还是M$FT工具?您会发现,有时候,正则表达式搜索模式的工作方式会有所不同,或者与其他模式相比根本不起作用。@Maximus和是先行语法的一部分,即?=模式,因此这是必需的。但这不是一个捕获群。@SebastianProske,啊,愚蠢的我,错过了那部分:。你可以发布一个答案,我会接受它,所以他们不能不使用一组组合?是的。regex语法有一些限制。此外,regex实现之间也存在差异。您使用的是GNU/Linux工具还是M$FT工具?您会发现,有时候,正则表达式搜索模式的工作方式会有所不同,或者与其他模式相比根本不起作用。@Maximus和是先行语法的一部分,即?=模式,因此这是必需的。但这不是一个捕获群。@SebastianProske,啊,愚蠢的我,错过了那部分:。你可以发布答案,我会接受的\w+是毫无意义的,因为它从来不是一个单词字符\这是一个很好的解决方案,谢谢,但我对结合这两部分的语法更感兴趣。这是一个很好的解决方案,谢谢,但我对结合这两部分的语法更感兴趣