gpt4 book ai didi

regex - 如何使用正则表达式限制范围之间的字符

转载 作者:行者123 更新时间:2023-12-04 20:38:41 24 4
gpt4 key购买 nike

据我所知{}花括号用于限制正则表达式中的字符,如 {3,12} , 将匹配 3 到 12 之间的字符长度。

我正在尝试验证可能包含句点的用户名 ._任何一个,但不是两个,都与位置无关。为此,下面的正则表达式运行良好。

(^[a-z0-9]+$)|(^[a-z0-9]*[\.\_][a-z0-9]*$)

但是我还需要将字符串长度限制在 3 到 12 之间,我曾尝试将 {3,12}在正则表达式中,但这不起作用。
((^[a-z0-9]+$)|(^[a-z0-9]*[\.\_][a-z0-9]*$)){3,12}

参见示例: https://regex101.com/r/kN3aO1/1

最佳答案

hwnd建议,一个更简单的解决方案是:

^(?=.{3,12}$)[a-z0-9]+(?:[._][a-z0-9]+)?$

旧的解决方案相当复杂和令人费解,留在这里以供引用,但请改用上面的解决方案。
^(?!(?:.{13,}|.{1,2})$)(?:([a-z0-9]+)|([a-z0-9]*[\.\_][a-z0-9]*))$

您可以为此添加一个前瞻。

Demo on regex101

关于regex - 如何使用正则表达式限制范围之间的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30548324/

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