2017-08-09 72 views
2

我在写一个只接受“.wms”文件的正则表达式。我们如何编写两个句点的正则表达式

我现在的正则表达式是" /\.(wms)$/i "

我使用这是Rails的模型验证,我得到这个错误

The provided regular expression is using multiline anchors (^ or $) 

我们怎样才能得到一个正则表达式,所有的比赛之下,避免上述轨误差

正则表达式应该允许:

  • filena me.wms
  • filename.zip.wms
  • (允许任何在.wms从而结束)

正则表达式不应该允许:

  • filename.geo
  • ilename.zip

我应该使用哪个正则表达式来获得此验证权限?

回答

1

您需要使用\A匹配字符串的起始和\z锚点匹配字符串的结尾。此外,一段时间应该逃过一个字面期。此外,要尽可能匹配任何0+字符,您可以使用.*

因此,你可以使用

/\A.*\.wms\z/ 

Rubular demo。 (演示正则表达式修改为使用其他锚,因为输入的是一个多字符串)。

0

您可以使用下面的正则表达式

([A-Za-z.-_]+.wms) 

如果您检查上面这个链接的正则表达式https://regex101.com/ 结果将是

Match 1 
Full match 0-12 `filename.wms` 
Group 1. 0-12 `filename.wms` 
Match 2 
Full match 14-30 `filename.zip.wms` 
Group 1. 14-30 `filename.zip.wms` 

问候

+0

如果你想添加任何信息,您可以发送我的细节。 –

0

尝试这个表达式

/\w+\.wms$/

希望这有助于