【发布时间】:2017-12-15 21:32:20
【问题描述】:
我一直在尝试编写一个正则表达式,它将匹配一个文件名,该文件名附加一个七位数的数字标识符,后跟一个连字符,例如1234567 - filename.pdf
文件名可以是任何文件名有效字符的集合。
到目前为止,我有正则表达式^[0-9]{7} - .*,它与字符串匹配,但它也与7654321 - 1234567 - filename.pdf 和3214567 - 7654321 - 1234567 - filename.pdf 等匹配。
是否有一个正则表达式只匹配带有一组数字和一个连字符的字符串?类似^[0-9]{7} -{1} .*
【问题讨论】:
-
可能是
^[0-9]{7} - (?![0-9]{7} - ).*?如果空格数量是任意的,它就不起作用了。 -
连字符前后只能有一个空格。介意解释一下这是做什么的吗?它是否确保 7 位字符串后面的不是另一个 7 位字符串?
-
见the regex demo。一旦在前 7 位数字、空格、
-、空格之后找到 7 位数字、空格、-和空格,(?![0-9]{7} - )将失败。 -
太棒了,谢谢!我怀疑会有任何文件名具有相同的 7 位/空格/连字符/空格格式。
标签: regex powershell