gpt4 book ai didi

javascript - 这个正则表达式有什么问题 :/(? :(? :^|\s)hide_([^\s]+))+/?

转载 作者:行者123 更新时间:2023-11-28 13:35:20 24 4
gpt4 key购买 nike

这是我的正则表达式:

/(?:(?:^|\s)hide_([^\s]+))+/

例如,当我有这个字符串时:

 hide_test sgadsg hide_ asdg hide_some_more asdgasd

它应该匹配testsome_more。目前,它返回 hide_testtest。有谁知道这个正则表达式有什么问题吗?

最佳答案

如果没有 g 标志,它仅返回第一个匹配项。

'hide_test sgadsg hide_ asdg hide_some_more asdgasd'.match(
/(?:(?:^|\s)hide_([^\s]+))+/
)
// => ["hide_test", "test"]

设置g标志将为您提供所有匹配项,(所有匹配的字符串):

'hide_test sgadsg hide_ asdg hide_some_more asdgasd'.match(
/(?:(?:^|\s)hide_([^\s]+))+/g
)
// => ["hide_test", " hide_some_more"]

要仅获取 hide_ 之后的部分,您需要对返回值进行后处理。

例如,使用 map 进行额外替换:

'hide_test sgadsg hide_ asdg hide_some_more asdgasd'.match(
/(?:(?:^|\s)hide_([^\s]+))+/g
).map(function(match) {
return match.replace(/^\s*hide_/, '');
})

顺便说一句,正则表达式可以简化为:/(\bhide_\S+)+/g(忽略捕获)

关于javascript - 这个正则表达式有什么问题 :/(? :(? :^|\s)hide_([^\s]+))+/?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21858583/

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