gpt4 book ai didi

Javascript正则表达式匹配前面和后面的字符

转载 作者:行者123 更新时间:2023-12-02 19:43:35 25 4
gpt4 key购买 nike

我在一个对象中有这个字符串:

<FLD>dsfgsdfgdsfg;NEW-7db5-32a8-c907-82cd82206788</FLD><FLD>dsfgsdfgsd;NEW-480e-e87c-75dc-d70cd731c664</FLD><FLD>dfsgsdfgdfsgfd;NEW-0aad-440a-629c-3e8f7eda4632</FLD>

this.model.get('value_long').match(/[<FLD>\w+;](NEW[-|\d|\w]+)[</FLD>]/g)

返回:

[";NEW-7db5-32a8-c907-82cd82206788<", ";NEW-480e-e87c-75dc-d70cd731c664<", ";NEW-0aad-440a-629c-3e8f7eda4632<"]

我的正则表达式有什么问题,它选取了前面的 ;和尾随 <

这是正则表达式的链接 http://regexr.com?30k3m

更新:

这是我想要返回的:

["NEW-7db5-32a8-c907-82cd82206788", "NEW-480e-e87c-75dc-d70cd731c664", "NEW-0aad-440a-629c-3e8f7eda4632"]

这里有一个 JSfiddle

http://jsfiddle.net/mwagner72/HHMLK/

最佳答案

方括号创建一个您不需要的字符类,请尝试将正则表达式更改为以下内容:

<FLD>\w+;(NEW[-\d\w]+)</FLD>

由于您似乎想要从每场比赛中获取捕获组,因此您可以使用以下代码来构造一个包含捕获组的数组:

var regex = /<FLD>\w+;(NEW[\-\d\w]+)<\/FLD>/g;
var match = regex.exec(string);
var matches = [];
while (match !== null) {
matches.push(match[1]);
match = regex.exec(string);
}

[<FLD>\w+;]会匹配方括号内的字符之一,而我认为您真正想要做的是匹配所有这些字符。同样对于其他字符类,[-|\d|\w] ,您可以删除 |因为它已经隐含在字符类中,|只能用于组内的交替。

这是包含新正则表达式的更新链接:http://jsfiddle.net/RTkzx/1

关于Javascript正则表达式匹配前面和后面的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10110710/

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