一些解释:
我有一个类似(从命令行程序执行kpsewhich -all etex.src
开始)的字符串:
c:/texlive/2019/texmf-dist/tex/luatex/hyph-utf8/etex.srcc:/texlive/2019/texmf-dist/tex/plain/etex/etex.src
此字符串包含2个或更多串联的文件路径,这些路径将再次分开。
动态搜索模式:c:/
文件始终位于同一卷上,此处为c
,但必须确定卷名。
是否可以使用RegExp做类似的事情?
我可以根据实际的文件名etex.src
拆分字符串,但是其他方法可行吗?
更新:
RegExp如下
(.+?:[\/\\]+)(?:(?!\1).)*
更好地满足了我的要求。 How to disassemble a string with CaptureGroup?
答案 0 :(得分:1)
答案 1 :(得分:1)
我不确定您要此RegExp检索什么,但是如果要获取文件路径数组,则可以使用/(?<!^)[^:]+/g
regex:
// in node.js
const str = 'c:/texlive/2019/texmf-dist/tex/luatex/hyph-utf8/etex.srcc:/texlive/2019/texmf-dist/tex/plain/etex/etex.src'
const paths = str.match(/(?<!^)[^:]+/g)
// [
// "/texlive/2019/texmf-dist/tex/luatex/hyph-utf8/etex.srcc",
// "/texlive/2019/texmf-dist/tex/plain/etex/etex.src"
// ]
此RegExp搜索一系列不包含:
且不在字符串开头的符号序列(不包括c
卷或任何其他卷名称) >