gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 09:51:39 26 4
gpt4 key购买 nike

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

模式是:不带扩展名的文件名应与其所在位置的父文件夹名称完全匹配。文件名可以是任何可能的值。

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

C:\some\path\to\folder\folder.jpg

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

最佳答案

是的,您可以使用反向引用:

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

第一组 ([^\\]+) 捕获文件夹名称,然后向后引用 (\1) 向后引用它说“同样的事情在这里。”

所以在上面,我们有:

  • \\ - 匹配文字反斜杠
  • ([^\\]+) - 文件夹名称的捕获组
  • \\ - 另一个文字反斜杠
  • \1 - 对捕获组的反向引用,表示“此处相同”
  • \. - 文字 .(引入扩展)
  • [^.\\]* - 零个或多个扩展字符(您可能希望将 * 更改为 + 以表示“一个或更多”)
  • $ - 字符串结尾

On regex101

如果您认为 C:\some\path\to\folder\folder.test.jpg 是有效匹配(例如,您认为 folder.test.jpg< 上的扩展名.test.jpg,而不是 .jpg),只需从 [^.\\] 接近尾声。

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

关于Javascript:检查字符串以匹配模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36182028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com