如何在字符串中搜索第一次出现的“:/”,然后搜索找到的子字符串的所有其他出现,包括“:/”?

一点解释:

我有一个类似的字符串(来自命令行程序执行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,但其他方法可能吗?

更新:

正则表达式如下

(.+?:[\/\\]+)(?:(?!\1).)*


MMMHUHU
浏览 188回答 2
2回答

慕工程0101907

我猜这个表达式可能有点接近您可能想要设计的内容:c:\/.*?(?=c:\/|$)

慕哥6287543

我不完全确定您希望此 RegExp 检索什么,但如果您想获取文件路径数组,则可以使用/(?<!^)[^:]+/gregex 来完成:// in node.jsconst 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)// [//&nbsp; &nbsp;"/texlive/2019/texmf-dist/tex/luatex/hyph-utf8/etex.srcc",//&nbsp; &nbsp;"/texlive/2019/texmf-dist/tex/plain/etex/etex.src"// ]此 RegExp 搜索不包含:且不以字符串开头的符号序列(不包括c卷或任何其他卷名称)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript