我正在尝试在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
答案 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+$
答案 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}