Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.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/19.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 在js中使用版本号为的正则表达式解析字符串_Javascript_Regex - Fatal编程技术网

Javascript 在js中使用版本号为的正则表达式解析字符串

Javascript 在js中使用版本号为的正则表达式解析字符串,javascript,regex,Javascript,Regex,我有两种不同格式的字符串,如下所示,我如何在js中编写一个RegExp来解析信息以获得appName1-v10.20。包装下: 你可以用 const extract=text=>{ const package=/\[package:?:,?\s*\[?[^\][]+]\[^]*\*/.exectext?[1] 退货包? Array.frompackage.matchAll/?:^\[^\][]*-v\d[^\][]*]/g,x=>x[1]。修剪: } 请参阅JavaScript演示: const

我有两种不同格式的字符串,如下所示,我如何在js中编写一个RegExp来解析信息以获得appName1-v10.20。包装下:

你可以用

const extract=text=>{ const package=/\[package:?:,?\s*\[?[^\][]+]\[^]*\*/.exectext?[1] 退货包? Array.frompackage.matchAll/?:^\[^\][]*-v\d[^\][]*]/g,x=>x[1]。修剪: } 请参阅JavaScript演示: const extract=text=>{ const package=/\[package:?:,?\s*\[?[^\][]+]\[^]*\*/.exectext?[1] 退货包? Array.frompackage.matchAll/?:^\[^\][]*-v\d[^\][]*]/g,x=>x[1]。修剪: } const oneMatchString='\[包:[appName1-v10.20.1]https://github.com/appName1/1111,[appName2-v20.15.10]https://github.com/appName2/aaa\]\r\n[asdsad:asdas]\r\n我在PR上有am说明' constTwoMatchString='[包:appName1-v10.20.1]https://github.com/appName1/1111\r\n[asdsad:asdas]\r\n我在PR上有am说明' console.log extractoneMatchString/[appName1-v10.20.1,appName2-v20.15.10] console.log extracttwoMatchString/[appName1-v10.20.1]您可以使用

const extract=text=>{ const package=/\[package:?:,?\s*\[?[^\][]+]\[^]*\*/.exectext?[1] 退货包? Array.frompackage.matchAll/?:^\[^\][]*-v\d[^\][]*]/g,x=>x[1]。修剪: } 请参阅JavaScript演示: const extract=text=>{ const package=/\[package:?:,?\s*\[?[^\][]+]\[^]*\*/.exectext?[1] 退货包? Array.frompackage.matchAll/?:^\[^\][]*-v\d[^\][]*]/g,x=>x[1]。修剪: } const oneMatchString='\[包:[appName1-v10.20.1]https://github.com/appName1/1111,[appName2-v20.15.10]https://github.com/appName2/aaa\]\r\n[asdsad:asdas]\r\n我在PR上有am说明' constTwoMatchString='[包:appName1-v10.20.1]https://github.com/appName1/1111\r\n[asdsad:asdas]\r\n我在PR上有am说明' console.log extractoneMatchString/[appName1-v10.20.1,appName2-v20.15.10] console.log extracttwoMatchString/[appName1-v10.20.1]使用matchAll返回一个RegExpStringIterator

上有一些示例,说明如何使用array.from将值放入数组

如果浏览器支持支持正向查找:

(?<=\[Package:.*?)[^\s\][-]+-[^\][]+(?=])
使用matchAll返回一个RegExpStringIterator

上有一些示例,说明如何使用array.from将值放入数组

如果浏览器支持支持正向查找:

(?<=\[Package:.*?)[^\s\][-]+-[^\][]+(?=])