Javascript:检查字符串以匹配模式

时间:2016-03-23 15:17:24

标签: javascript regex

我需要测试字符串天气与特定模式匹配。 String是完整的文件路径,例如: C:\some\path\to\folder\folder.jpg 要么 C:\another\file\path\file.jpg

模式是:没有扩展名的文件名应该与它所在的确切父文件夹名称匹配。文件名可以是任何可能的值。

因此,在我的示例中,只有第一个字符串匹配pattern:

  

C:\一些\路径\到\的文件夹 \的文件夹 .JPG

可以使用一个正则表达式在javascript中进行此测试吗?

1 个答案:

答案 0 :(得分:4)

是的,您可以使用后退参考

\\([^\\]+)\\\1\.[^.\\]*$

第一组([^\\]+)捕获文件夹名称,然后后引用(\1)引用它回复说#34;同样的事情。"

所以在上面,我们有:

  • \\ - 匹配文字反斜杠
  • ([^\\]+) - 文件夹名称的捕获组
  • \\ - 另一个字面反斜杠
  • \1 - 对捕获组的后面引用说"同样的事情在这里"
  • \. - 文字.(介绍扩展名)
  • [^.\\]* - 零个或多个扩展字符(您可能希望将*更改为+以表示"一个或多个")
  • $ - 字符串结尾

InvokeLater

如果您认为C:\some\path\to\folder\folder.test.jpg是有效匹配(例如,您认为folder.test.jpg上的扩展名为.test.jpg,而不是.jpg),请删除{{1}从最近的.开始。

如果您想允许没有扩展名的文件,可能是[^.\\]\\([^\\]+)\\\1(?:\.[^.\\]+)?$是可选扩展名。