如何正确地为此格式化正则表达式?
我试图验证以下步骤正则表达式表达:如何正确地为此格式化正则表达式?
例子:
1234567 Marko's word document 31.10.1998
伪例:
[Seven digit #] [space] [Unspecified amount of text] [space] [. delimited date]
有人能帮助我在构建一个?这是针对正则表达式的VBA风格。
我会从这里开始。
^\d{7}\s.*\s\d{1,2}\.\d{1,2}\.\d{4}$
这是每个部分对应的内容。
(beginning) =^
[Seven digit #] = \d{7}
[space] = \s
[Unspecified amount of text] = .*
[space] = \s
[. delimited date] = \d{1,2}\.\d{1,2}\.\d{4}
(end) = $
但是在中间的.*
可能允许超过您的确定。 \d{1,2}\.\d{1,2}\.\d{1,4}$
也不会实际过滤日期,只是小数。因此,这将允许像“99.99.9999”的字符串
您可以使用此工具来磨练下来,如果你需要更具体的东西: https://regex101.com/r/dU5lQ3/2
不应该是'\ d {1,2} \。\ d {1,2} \。\ d {1,4}'位只是'\ d {2} \。\ d {2} \。 \ d {4}'或者vb不支持? –
我这样做是因为我认为1.1.2010被接受,就像01.01.2010被接受一样。但是你是对的,这取决于OP。我想尽管删除\ d {1,4}是安全的。除非他们想要两位数字年或1000年前的一年。 – Andrew
你有没有编写任何代码是什么?你卡在哪里? –
取决于您希望日期验证的严格程度。是'31.09.1998'一个有效的? – Fabricator