平台中iOS捆绑包ID的正则表达式,用于在Azure B2C中注册的应用程序
我需要一个最多222个字符的正则表达式平台中iOS捆绑包ID的正则表达式,用于在Azure B2C中注册的应用程序,ios,regex,azure-ad-b2c,regex-lookarounds,Ios,Regex,Azure Ad B2c,Regex Lookarounds,我需要一个最多222个字符的正则表达式 必须使用a-z a-z 0-9 也可以有。及- 但是: 不能从一开始。或- 不能以…结束。或- 不能有多个,如“.”或“-” 不能只有。或- 示例: 好: asd.asd.asd.asd.asd.aadas.asdasdasd as-d.asd.a-sd 坏的: .asd.asd -asd-asd A-asd.asd 自闭症 自闭症- 自闭症- asd.asd- 自闭症-- asd asd.asd-.asd - asd--asd..asd 我的结局是这
- 必须使用a-z a-z 0-9
- 也可以有。及- 但是:
- 不能从一开始。或-
- 不能以…结束。或-
- 不能有多个,如“.”或“-”
- 不能只有。或-
^[^-.]((?!-)[a-zA-Z0-9\-]\.?[^-]){1100}[^-.]$
但它不包括这种情况,如asd.asd-.asd
这是应用程序注册中平台iOS捆绑包ID的regex 您可以在字符类
[a-zA-Z0-9\-]
(请注意,如果-
位于开始或结束位置,则不必转义)
字符串的开头^
断言1-100个字符(?=.{1100}$)
重复1+次,与列出的任何一项匹配[a-zA-Z0-9]+
可选择重复(?:[-.][a-zA-Z0-9]+)*
或-
,并重复所列任何一项1+次
字符串结尾$
我们真的需要“不捕获组”
?:
如果需要,为什么我们不把它也放在这个正则表达式的第一部分?@freak_geek该模式的第一部分是匹配的[a-zA-Z0-9]+
,它不必在一个组中,因为我们没有对组本身做任何事情。模式的这部分(?:[-.][a-zA-Z0-9]+)*
被分组为作为一个整体重复。您可以将非捕获组转换为捕获组([-.][a-zA-Z0-9]+)*
,但仅用于匹配,不需要组值本身。
^(?=.{1,100}$)[a-zA-Z0-9]+(?:[-.][a-zA-Z0-9]+)*$