我正在尝试构建一个正则表达式,它接受具有以下条件的域名:
可能的情况:
不该通过的案子
我建造的是这样的:
^(([a-zA-z0-9][A-Z0-9a-z-]{1,61}[a-zA-Z0-9][.])+[a-zA-Z0-9]+)$
但这不接受a.b.c
匿名用户
您可以使用以下正则表达式:
/^(?=[A-Z])((?:[A-Z\d]|(?<=[A-Z])-(?=[A-Z])){1,63})(?<=[A-Z])(?:\.[A-Z\d]+){1,2}$/im
细节:
^
-字符串的开头。
(?=[A-Z])
-正面前瞻:整个字符串必须以字母开头。
(
-捕获组-域名。
(?:
-非捕获组的开始,由于以下量词而需要。
[A-Z\d]
-第一种选择:字母或数字。
|
-或者。
- <代码>(?
- <代码>\。[A-Z\d]-一个点和一系列字母或数字
您肯定应该使用i(不区分大小写)选项,如果您检查了许多字符串,每个字符串都在一个单独的行中,那么也应该使用m(多行)选项。
我没有包括整个长度的任何测试,但你也没有包括。我认为,这里的主要任务是展示如何匹配正则表达式失败的情况。
您可以使用
^(?=.{1,255}$)(?=[^.]{1,63}(?![^.]))[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*(?:[.](?=[^.]{1,63}(?![^.]))[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*)+(?:[.][a-zA-Z0-9-]*[a-zA-Z0-9])?$
请参阅此处的正则表达式演示。
图案细节
^-字符串的开头
(?=.{1255}$)
-整个字符串应该有1到255个字符
(?=[^.]{1,63}(?![^.])
-必须有1到63个字符,而不是
在字符之前,而不是
或字符串结尾
[a-zA-Z0-9]
-1个或多个字母数字字符
(?:
-非捕获组的开始:
--连字符
[a-zA-Z0-9]
-1个字母数字字符
[.]
-一个点
(? =[^.]{ 1,63}(?![ ^.]))
-必须有1到63个字符,而不是。
在字符之前,而不是。
或字符串末尾 [a-zA-Z0-9]
-1个字母数字字符 (?:-[a-zA-Z0-9])*
-的0次或更多次重复-
后跟1个字母数字字符
一个点
我不确定这是否可以使用正则表达式。我会尝试使用正则表达式,但如果不可能,我会切换到双重验证。 我的数据库(postgresql)接受为15,6(最多15位,最多6位小数),因此如果我有10位整数,我可以有5位小数。小数分隔符被忽略。 我目前有一个正则表达式(逗号是小数分隔符): 它不验证总长度,只验证左侧的数字。但由于用户也可以键入点(千位分隔符),我有一个怪物:
问题内容: 我的代码: 输出: 我知道的 : “一个?” 代表零个或一次出现的字符“ a”。 Java API说: matcher.start()返回上一个匹配项的起始索引。 matcher.end()返回匹配的最后一个字符后的偏移量。 matcher.group()返回与上一个匹配项匹配的输入子序列。对于具有输入序列s的匹配器m,表达式m.group()和s.substring(m.start(
问题内容: 我使用以下正则表达式而不限制任何字符长度 在上面,当我尝试将字符长度限制为如下所示的15个时,会引发错误。 请帮助我使上述regEx的字符数限制为15。 问题答案: 您不能将量词应用于锚点。相反, 要限制输入字符串的长度,请 在开头使用锚定先行: 另外,我假设您想将0个或多个字母或数字与匹配。它应该看起来像(即在此处使用字符类)。 为什么不最后使用限制量词,例如? 量词仅应用于左侧的子
我有以下正则表达式: 这允许: 开头可选 然后是数字、点、逗号、圆括号、破折号和空格。 除此之外,我需要确保数字和加号(如果存在)的长度在9到15之间(所以我不计算符号之外的任何特殊字符)。 最后一个条件是我有问题的地方。 有效输入: 358(9)1234567 无效输入: 3.5 8.9,1-2(3)4.5,6.77777(33个字符,只有20个计数字符(数字和加号)太多) 如果可能的话,使用正
我想验证一个数字最大长度为13、小数点为2的货币字符串。我用逗号作为十进制分隔符,用句点作为千位分隔符。 我有一个正则表达式: For sintax有效,但不适用于最大长度。我需要在这个正则表达式中添加什么? 例如,这些字符串必须有效: 这些必须是无效的:
问题内容: 我有这个正则表达式使用向前和向后的前瞻: 我正在尝试将其从C#移植到Python,但始终收到错误 是否有可能用Python重写而不会失去意义? 这个想法是为了匹配类似 更新资料 我正在使用环顾四周解析已修改的HTTP多部分文本 我想在进行拆分时只获取文件路径和其他文本,而不必删除开始和结束标签 简短的代码很重要,但是如果它使正则表达式可行,我愿意更改格式。 问题答案: 对于同一数组中的