PHP regex允许在这种模式中使用破折号


PHP regex allow dashes in this pattern

我有一个用于图像文件名验证的正则表达式:

/^'w*'.(jpg|jpeg|png|gif)$/

但问题是文件名可以包含破折号-字符。例:564SDD-DSS.png

如何在语句中包含破折号?我需要逃避它吗?

/^'w'-*'.(jpg|jpeg|png|gif)$/

/^['w'-]*'.(jpg|jpeg|png|gif)$/ ?

I got a bit lost.

只要['w-]就可以了。而不是*,你可能想要+,因为我确信基名至少是一个字符长。一起:

/^['w-]+'.(jpe?g|png|gif)$/i

请注意,这允许文件名仅为-.jpg