Regex 在生成正则表达式时向字符串添加必填字符
我正在处理以下正则表达式: ^((199)[0-9]| 200[0-9]| 201[0-8])(0[1-9]| 1[0-2])(0[1-9]| 1\d | 2\d | 3[01])\s[0-9]?$ 所以我有这个正则表达式,未绑定部分(空格前的前8个字符)工作正常。在第二部分(这将是可选的),从我想放置的空格开始:或。必须输入字符(至少一次) 所以 试试这个正则表达式:Regex 在生成正则表达式时向字符串添加必填字符,regex,Regex,我正在处理以下正则表达式: ^((199)[0-9]| 200[0-9]| 201[0-8])(0[1-9]| 1[0-2])(0[1-9]| 1\d | 2\d | 3[01])\s[0-9]?$ 所以我有这个正则表达式,未绑定部分(空格前的前8个字符)工作正常。在第二部分(这将是可选的),从我想放置的空格开始:或。必须输入字符(至少一次) 所以 试试这个正则表达式: ((199)[0-9]|200[0-9]|201[0-8])(0[1-9]|1[0-2])(0[1-9]|1\d|2\d|3[
((199)[0-9]|200[0-9]|201[0-8])(0[1-9]|1[0-2])(0[1-9]|1\d|2\d|3[01]) (?:(?:\d+(?:\.|:|$)){1,4})?
最后一部分将接受模式{digits}{dot/colon/end of string}4次(您可以调整它)
另外,我想指出的是,我不知道总体用例(针对所提到的用例进行了测试),可能需要一些调整。您需要添加如下可选模式:
^(199[0-9]|200\d|201[0-8])(0[1-9]|1[0-2])(0[1-9]|1\d|2\d|3[01])(?:\s+(\d+(?:[.:]\d+)+))?$
见
(?:\s+(\d+(?:[.:]\d+)))
部分匹配以下1或0个序列:
-1个或多个空格\s+
-捕获组匹配(\d+(?:[.:]\d+)
-1个或多个数字\d+
-1个或多个(?:[.:]\d+
或
序列,后跟1个或多个数字:
{min,max}
限制量词而不是+
来进一步调整此参数。比如说,要匹配1到3位数字,可以使用\d{1,3}
^(199[0-9]|200\d|201[0-8])(0[1-9]|1[0-2])(0[1-9]|1\d|2\d|3[01])(?:\s+(\d+(?:[.:]\d+)+))?$