bundleId 的正则表达式,最后带有可选的通配符字符 (*)
Regex for bundleId with optional wildcard char (*) at the end
我正在尝试验证 bundleId 的输入值。 bundleId 的有效值必须是用 (.) 分隔的字母数字值。如果我们试图在 bundleId 中添加多个 (.),那么我们可以在最后一个通配符 *
字符。例如,一些正确的包 ID 以 *
结尾。 comm.*
comm.myapp.*
comm.myapp.myappteam.*
有效。但是包括 *
和字符串将是无效的。例如:comm.myap*
无效。
使用连字符 (-) 字符也是有效的,但在字符串的中间。
例如:comm.myapp-team
、comm.m-app.*
、co.team.te-app.*
是 bundleId 的一些有效字符串。
我正在尝试使用此正则表达式进行验证:@"^([a-zA-Z0-9]+\.)+([a-zA-Z0-9])|\*"
string pattern = @"^([a-zA-Z0-9]+\.)+([a-zA-Z0-9])";
string input = "comm.app-team.*";
Match m = Regex.Match(input, pattern, RegexOptions.IgnoreCase);
if (m.Success)
Console.WriteLine("valid bundleId");
else
Console.WriteLine("Invalid bundleId");
我希望这个 input = "comm.app.*"
成为有效的包标识符。
您可以将第一部分与作为分隔符的点和一个可选的连字符相匹配。
添加一个可选部分,该部分以点开头并匹配字符 class \.[a-zA-Z0-9]+
中所列内容的 1 倍以上,并再次添加可选的连字符部分。
最后添加匹配可选.*
您可能会使用:
^[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*\.(?:(?:[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*\.)*\*|[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*)$
说明
^
字符串开头
[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*\.
匹配字符 a-z 或数字并重复 0+ 次带连字符的部分后跟一个点
(?:
非捕获组
(?:[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*\.)*\*
以 *
结尾的模式重复 0 次以上
|
或
[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*
重复字符 a-z 或带有连字符部分的数字 0+ 次
)
关闭非捕获组
$
字符串结束
我正在尝试验证 bundleId 的输入值。 bundleId 的有效值必须是用 (.) 分隔的字母数字值。如果我们试图在 bundleId 中添加多个 (.),那么我们可以在最后一个通配符 *
字符。例如,一些正确的包 ID 以 *
结尾。 comm.*
comm.myapp.*
comm.myapp.myappteam.*
有效。但是包括 *
和字符串将是无效的。例如:comm.myap*
无效。
使用连字符 (-) 字符也是有效的,但在字符串的中间。
例如:comm.myapp-team
、comm.m-app.*
、co.team.te-app.*
是 bundleId 的一些有效字符串。
我正在尝试使用此正则表达式进行验证:@"^([a-zA-Z0-9]+\.)+([a-zA-Z0-9])|\*"
string pattern = @"^([a-zA-Z0-9]+\.)+([a-zA-Z0-9])";
string input = "comm.app-team.*";
Match m = Regex.Match(input, pattern, RegexOptions.IgnoreCase);
if (m.Success)
Console.WriteLine("valid bundleId");
else
Console.WriteLine("Invalid bundleId");
我希望这个 input = "comm.app.*"
成为有效的包标识符。
您可以将第一部分与作为分隔符的点和一个可选的连字符相匹配。
添加一个可选部分,该部分以点开头并匹配字符 class \.[a-zA-Z0-9]+
中所列内容的 1 倍以上,并再次添加可选的连字符部分。
最后添加匹配可选.*
您可能会使用:
^[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*\.(?:(?:[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*\.)*\*|[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*)$
说明
^
字符串开头[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*\.
匹配字符 a-z 或数字并重复 0+ 次带连字符的部分后跟一个点(?:
非捕获组(?:[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*\.)*\*
以*
结尾的模式重复 0 次以上
|
或[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*
重复字符 a-z 或带有连字符部分的数字 0+ 次
)
关闭非捕获组$
字符串结束