Regex 是否可以删除此匹配中的斜杠?
我想扩展我的regexp以进行文件路径匹配,但即使我发现了问题,我也不知道怎么做 input示例 “C://species/dionols/trex.json” 输出示例 [“C://物种/恐龙”“trex”“json”] 这样我就有了文件夹路径、文件名和扩展名。 我还希望文件夹路径是可选的 我的regexp 我试过了Regex 是否可以删除此匹配中的斜杠?,regex,Regex,我想扩展我的regexp以进行文件路径匹配,但即使我发现了问题,我也不知道怎么做 input示例 “C://species/dionols/trex.json” 输出示例 [“C://物种/恐龙”“trex”“json”] 这样我就有了文件夹路径、文件名和扩展名。 我还希望文件夹路径是可选的 我的regexp 我试过了 "^(.*[\\\/])?(.*)\.(.*)$" 它输出 ["C://species/dinosaurs/" "trex" "json"] 差不多了,但我的头很长 我试过了
"^(.*[\\\/])?(.*)\.(.*)$"
它输出
["C://species/dinosaurs/" "trex" "json"]
差不多了,但我的头很长
我试过了
"^((.*)[\\\/])?(.*)\.(.*)$"
我输出
[“C://物种/恐龙/”“C://物种/恐龙”“trex”“json”]
也许更好,因为我只需要删除第一个匹配项,而在第一种情况下,我必须对字符串进行后期处理
我看到了这个问题,因为身体中可能存在一些病毒,所以更难。
是否可以说第一个匹配组的结尾可以是all,但不能是/
我试过了
^(.*(?!\/))[\\\/]?(.*)\.(.*)$
不起作用。我刚刚发现了否定断言,但输出是
["C://species/dinosaurs/trex" "json"]
有什么线索吗?这条应该适合你的需要:
^(?:(.*)/)?([^/]+)\.([^.]+)$
通过实现可视化此功能应满足您的需要:
^(?:(.*)/)?([^/]+)\.([^.]+)$
通过
/[\/:a-z]+(?=\/)|[a-z]+//gi
检查可视化。假设最后总是有文件扩展名,您使用regex的原因是什么?任何像样的编程语言都应该能够将路径拆分为目录和文件名,然后将扩展名从文件名中拆分出来。rock321987解决了这个问题,谢谢。对其他人来说,数字也可能存在。我不知道它是否存在,可能是因为Clojure使用Java,但它不是一个巨大的函数/[\/:a-z]+(?=\/)|[a-z]+/gi
检查..假设最后总是有文件扩展名,那么使用正则表达式有什么特别的原因吗?任何像样的编程语言都应该能够将路径拆分为目录和文件名,然后将扩展名从文件名中拆分出来。rock321987解决了这个问题,谢谢。对其他人来说,数字也可能存在。我不知道它是否存在,可能是因为Clojure使用Java,但它不是一个巨大的函数