gpt4 book ai didi

javascript - 使用带有数字问题的正则表达式拆分字符串

转载 作者:行者123 更新时间:2023-11-30 11:08:20 26 4
gpt4 key购买 nike

有一个字符串列表,例如:

Client Potential XSS2Medium
Client HTML5 Insecure Storage41Medium
Client Potential DOM Open Redirect12Low

我想将每个字符串分成三个字符串,例如:

["Client Potential XSS", "2", "Medium"]

我使用这个正则表达式:

/[a-zA-Z ]+|[0-9]+/g)

但是对于包含其他数字的字符串,显然是行不通的。例如:

Client HTML5 Insecure Storage41Medium

结果是:

["Client HTML", "5", " Insercure Storage", "41", "Medium"]

我找不到生成的正则表达式:

["Client HTML5 Insercure Storage", "41", "Medium"]

此正则表达式适用于 regex101.com:

(.+[ \t][A-z]+)+([0-9]+)+([A-z]+)

在我的代码中使用它:

data.substring(startIndex, endIndex)
.split("\r\n") // Split the vulnerabilities
.filter(item => !item.match(/(-+)Page \([0-9]+\) Break(-+)/g) // Remove page break
&& !item.match(/PAGE [0-9]+ OF [0-9]+/g) // Remove pagination
&& item !== '') // Remove blank strings
.map(v => v.match(/(.+[ \t][A-z]+)+([0-9]+)+([A-z]+)/g));

不起作用。

如有任何帮助,我们将不胜感激!

编辑:所有字符串都以 HighMediumLow 结尾。

最佳答案

问题出在您的 g 全局标志上。

从这一行中删除该标志:.map(v => v.match(/(.+[\t][A-z]+)+([0-9]+)+([A-z] +)/g)); 使其成为:

.map(v => v.match(/(.+[\t][A-z]+)+([0-9]+)+([A-z]+)/));


此外,您可以使正则表达式更简单,如 shown通过@bhmahler:

.map(v => v.match(/(.*?)(\d+)(low|medium|high)/i));

关于javascript - 使用带有数字问题的正则表达式拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54790522/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com