gpt4 book ai didi

JavaScript 正则表达式 : repeating non-capturing group

转载 作者:行者123 更新时间:2023-11-30 23:59:07 25 4
gpt4 key购买 nike

我正在研究正则表达式,但我无法让它按我想要的方式工作。

字符串,2 个示例:

- /download?standard=yes&file=France_new-aquitaine_deux-sevres_europe_2.obf.zip

- /download?standard=yes&file=Afghanistan_asia_2.obf.zip

我想提取以下部分:

- country (France)  
- region (new-aquitaine)
- department (deux-sèvres)
- worldZone (europe)

我的 WIP 正则表达式:
/.*file=(?:(.*?)_{1})*?(?:\d\.obf\.zip)$/gi

也许有一种递归方式来处理它,我不知道。

你能帮助或指导我吗?谢谢。

解决方法:

/.*file=([^_]+)_(?:([^_]+)_)??(?:([^_]+)_)??([^ _]+)_2\.obf\.zip$/g

最佳答案

一个选项可能是使用捕获组,如果您还想匹配第二个字符串的国家/地区和地区,您可以使用可选的非捕获组 (?:...) 将该部分设为可选?

各部分之间用下划线分隔。您可以使用否定字符类 ([^_]+) 匹配除下划线之外的任何字符来捕获其间的部分。

.*file=([^_]+)_([^_]+)(?:_([^_]+)_([^_]+))?_\d+\.obf\.zip$

Regex demo

关于JavaScript 正则表达式 : repeating non-capturing group,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60853480/

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