RegExp仅与包含文件名的路径匹配

时间:2018-12-06 08:36:07

标签: javascript regex file match ignore

我正在尝试在JS中创建一个Regexp,该Regexp仅查看具有文件的字符串,而忽略没有文件名的路径。

输入

tanxe\src\lib\hello
tanxe\lib\hello\world\verboseBackup.js
tanxe\src\hello\verboseBackup.js
tanxe\lib\verboseBackup.js

尝试

input.match(/^tanxe.*?lib.*?\\..*/i)

预期输出:

tanxe\lib\hello\world\verboseBackup.js
tanxe\lib\verboseBackup.js

5 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:tanxe\\lib.*?\.\w+
它匹配以tanxe\lib开头并以文件扩展名结尾的路径。

答案 1 :(得分:1)

input.match(/^tanxe\\lib\\(\w+\\)*\w+\.\w+/gi);

请参阅我创建的regExr小提琴。

答案 2 :(得分:1)

您可以尝试与此伴侣

^.*\.\w+$
  

说明

  • ^-字符串开头的锚点。
  • .*-匹配任何一次或多次,除了换行符。
  • \.-匹配.
  • \w+-一次或多次匹配单词字符。
  • $-字符串结尾。

http://man7.org/linux/man-pages/man7/epoll.7.html

更新:- 如果您严格希望匹配tanxe \ lib并仅关注内容

您可以尝试与此伴侣

^tanxe\\lib\\.+\.\w+$

Demo

答案 3 :(得分:1)

您的正则表达式正在工作,我认为您需要的是其他标志:g全局标志,m多行标志

var input = `tanxe\\src\\lib\\hello
tanxe\\lib\\hello\\world\\verboseBackup.js
tanxe\\src\\hello\\verboseBackup.js
tanxe\\lib\\verboseBackup.js
D:\\Program Files\\atom\\.atom\\packages\\utilities-tanxe\\lib\\abc\\verboseBackup.js`

input.match(/^.*tanxe.*?lib.*?\..*/gmi).forEach(r => console.log(r))
// start with "tanxe"
//input.match(/^tanxe.*?lib.*?\..*/gmi).forEach(r => console.log(r))

答案 4 :(得分:1)

也尝试一下。

 tanxe\\[a-zA-Z\\]+[.]{1}[a-zA-z]{2,3}