gpt4 book ai didi

用于检查可选数字组的正则表达式

转载 作者:行者123 更新时间:2023-12-02 00:50:03 25 4
gpt4 key购买 nike

我正在尝试创建一个应该能够接受以下字符串的正则表达式

proj_asdasd_000.gz.xml
proj_asdasd.gz.xml

基本上第二个下划线是可选的,如果后面有任何值,它应该只是整数。

以下是我正在尝试的正则表达式。

^proj([a-zA-z0-9]?)+_[a-zA-z]+(_[0-9]?)+\.[a-z]+.[a-z]

有什么建议让它接受上述字符串吗?

最佳答案

你可以使用

^proj[a-zA-Z0-9]*_[a-zA-Z]+(?:_[0-9]+)?\.[a-z]+\.[a-z]+$
^proj[a-zA-Z0-9]*_[a-zA-Z]+(?:_[0-9]+)?(?:\.[a-z]+){2}$

参见 regex demo

详情

  • ^ - 字符串的开始
  • proj - 文字子串
  • [a-zA-Z0-9]* - 0 个或多个字母数字字符
  • _ - _ 字符
  • [a-zA-Z]+ - 1+ 个 ASCII 字母
  • (?:_[0-9]+)? - 一个可选的下划线序列,后跟 1+ 个数字
  • \.[a-z]+\.[a-z]+ = (?:\.[a-z]+){2} - 出现两次. 和 1+ 个小写 ASCII 字母
  • $ - 字符串结尾。

注意事项:

  • [A-z] matches more than just ASCII letters
  • ([a-zA-z0-9]?)+ 与可选字符匹配 1 次或多次,这毫无意义。用 + 匹配一个字符 1 次或多次,或者用 * 匹配一个字符 0 次或多次,不需要括号
  • (_[0-9]?)+ 匹配 1 个或多个 _ 后跟一个可选数字的序列(因此,它匹配 _9___1_,例如)。必须交换量词以匹配 _ 和 1+ 位的可选序列

关于用于检查可选数字组的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58396232/

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