javascript - 匹配子目录

标签 javascript regex

给定一个像 https://xxxxxxxxxx.cloudfront.net/dir1/dir2/file.ext 这样的字符串,我想得到 dir2

我有这个正则表达式:/(\.net\/)([^\/]*)/,但这只能让我获得捕获组 dir1

我如何修改它以匹配 dir2

我正在使用正则表达式一步替换字符串。

.replace(/(\.net\/)([^\/]*)/,'$1'+'newfilename'

所以我不想仅仅提取dir2。我希望我的正则表达式匹配它。以便我可以更换它。

最佳答案

/.*\/([^\/]+)\/[^\/]*$/

捕获组 1 将是路径中的最后一个目录。

如果你想替换 dir2 而不是提取它,你的捕获组应该是所有除了那个目录:

str.replace(/(.*\/)[^/]+(\/[^\/]*)$/, '$1test$2');

> str = 'https://xxxxxxxxxx.cloudfront.net/dir1/dir2/file.ext'
> str.replace(/(.*\/)[^/]+(\/[^\/]*)$/, '$1test$2');
"https://xxxxxxxxxx.cloudfront.net/dir1/test/file.ext"

关于javascript - 匹配子目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21148637/

相关文章:

javascript - 将已排序数组的索引引用到旧数组(Javascript)

javascript - 在 Bootstrap 3 Datetimepicker 中禁用 future 日期

javascript - jQuery $(document).ready 函数的简写形式

javascript - angularjs 中的 Math.ceil 返回错误值

python - 用正则表达式查找所有重复的模式

javascript - 如何在 JavaScript(和正则表达式?)中将字符串转换为连字符连接的单词?

javascript - JS正则表达式名称突出显示

regex - 如何在 AutoIt 脚本中执行正则表达式

php - 当这个词出现多次时,我如何使用具有相同模式的 PHP preg_replace?

php - 正则表达式匹配和替换字符串